int main() { //用于丢包率的随机数种子 srand(time(NULL)); //启动重叠网络层并获取重叠网络层TCP套接字描述符 int son_conn = son_start(); if(son_conn<0) { printf("fail to start overlay network\n"); exit(1); } //初始化stcp客户端 stcp_client_init(son_conn); //在端口87上创建STCP客户端套接字, 并连接到STCP服务器端口88. int sockfd = stcp_client_sock(CLIENTPORT1); if(sockfd<0) { printf("fail to create stcp client sock"); exit(1); } if(stcp_client_connect(sockfd,SERVERPORT1)<0) { printf("fail to connect to stcp server\n"); exit(1); } printf("client connected to server, client port:%d, server port %d\n",CLIENTPORT1,SERVERPORT1); //获取sendthis.txt文件长度, 创建缓冲区并读取文件中的数据. FILE *f; f = fopen("sendthis.txt","r"); assert(f!=NULL); fseek(f,0,SEEK_END); int fileLen = ftell(f); fseek(f,0,SEEK_SET); char *buffer = (char*)malloc(fileLen); fread(buffer,fileLen,1,f); fclose(f); //首先发送文件长度, 然后发送整个文件. stcp_client_send(sockfd,&fileLen,sizeof(int)); stcp_client_send(sockfd, buffer, fileLen); free(buffer); //等待一段时间, 然后关闭连接. sleep(WAITTIME); if(stcp_client_disconnect(sockfd)<0) { printf("fail to disconnect from stcp server\n"); exit(1); } if(stcp_client_close(sockfd)<0) { printf("fail to close stcp client\n"); exit(1); } //停止重叠网络层 son_stop(son_conn); }
int main() { //用于丢包率的随机数种子 srand(time(NULL)); //连接到SIP进程并获得TCP套接字描述符 int sip_conn = connectToSIP(); if(sip_conn<0) { printf("fail to connect to the local SIP process\n"); exit(1); } //初始化stcp客户端 stcp_client_init(sip_conn); sleep(STARTDELAY); char hostname[50]; printf("Enter server name to connect:"); scanf("%s",hostname); int server_nodeID = topology_getNodeIDfromname(hostname); if(server_nodeID == -1) { printf("host name error!\n"); exit(1); } else { printf("connecting to node %d\n",server_nodeID); } //在端口87上创建STCP客户端套接字, 并连接到STCP服务器端口88. int sockfd = stcp_client_sock(CLIENTPORT1); if(sockfd<0) { printf("fail to create stcp client sock"); exit(1); } if(stcp_client_connect(sockfd,server_nodeID,SERVERPORT1)<0) { printf("fail to connect to stcp server\n"); exit(1); } printf("client connected to server, client port:%d, server port %d\n",CLIENTPORT1,SERVERPORT1); //获取sendthis.txt文件长度, 创建缓冲区并读取文件中的数据 FILE *f; f = fopen("sendthis.txt","r"); assert(f!=NULL); fseek(f,0,SEEK_END); int fileLen = ftell(f); fseek(f,0,SEEK_SET); char *buffer = (char*)malloc(fileLen); fread(buffer,fileLen,1,f); fclose(f); //首先发送文件长度, 然后发送整个文件. stcp_client_send(sockfd,&fileLen,sizeof(int)); stcp_client_send(sockfd, buffer, fileLen); free(buffer); //等待一段时间, 然后关闭连接. sleep(WAITTIME); if(stcp_client_disconnect(sockfd)<0) { printf("fail to disconnect from stcp server\n"); exit(1); } if(stcp_client_close(sockfd)<0) { printf("fail to close stcp client\n"); exit(1); } //断开与SIP进程之间的连接 disconnectToSIP(sip_conn); }
int main() { //用于丢包率的随机数种子 srand(time(NULL)); //启动重叠网络层并获取重叠网络层TCP套接字描述符 int son_conn = son_start(); if(son_conn<0) { printf("fail to start overlay network\n"); exit(1); } //初始化stcp客户端, 传递TCP套接字描述符给STCP层, STCP将该套接字作为一个全局变量维护 stcp_client_init(son_conn); //在端口87上创建STCP客户端套接字, 并连接到STCP服务器端口88 int sockfd = stcp_client_sock(CLIENTPORT1); if(sockfd<0) { printf("fail to create stcp client sock"); exit(1); } if(stcp_client_connect(sockfd,SERVERPORT1)<0) { printf("fail to connect to stcp server\n"); exit(1); } printf("client connect to server, client port:%d, server port %d\n",CLIENTPORT1,SERVERPORT1); //在端口89上创建STCP客户端套接字, 并连接到STCP服务器端口90 int sockfd2 = stcp_client_sock(CLIENTPORT2); if(sockfd2<0) { printf("fail to create stcp client sock"); exit(1); } if(stcp_client_connect(sockfd2,SERVERPORT2)<0) { printf("fail to connect to stcp server\n"); exit(1); } printf("client connect to server, client port:%d, server port %d\n",CLIENTPORT2, SERVERPORT2); //等待一段时间, 然后关闭连接 sleep(WAITTIME); if(stcp_client_disconnect(sockfd)<0) { printf("fail to disconnect from stcp server\n"); exit(1); } if(stcp_client_close(sockfd)<0) { printf("failt to close stcp client\n"); exit(1); } if(stcp_client_disconnect(sockfd2)<0) { printf("fail to disconnect from stcp server\n"); exit(1); } if(stcp_client_close(sockfd2)<0) { printf("failt to close stcp client\n"); exit(1); } //停止重叠网络层 son_stop(son_conn); }
int main() { //用于丢包率的随机数种子 srand(time(NULL)); //启动重叠网络层并获取重叠网络层TCP套接字描述符 int son_conn = son_start(); if(son_conn<0) { printf("fail to start overlay network\n"); exit(1); } //初始化stcp客户端 stcp_client_init(son_conn); //在端口87上创建STCP客户端套接字, 并连接到STCP服务器端口88 int sockfd = stcp_client_sock(CLIENTPORT1); if(sockfd<0) { printf("fail to create stcp client sock"); exit(1); } if(stcp_client_connect(sockfd,SERVERPORT1)<0) { printf("fail to connect to stcp server\n"); exit(1); } printf("client connected to server, client port:%d, server port %d\n",CLIENTPORT1,SERVERPORT1); //在端口89上创建STCP客户端套接字, 并连接到STCP服务器端口90 int sockfd2 = stcp_client_sock(CLIENTPORT2); if(sockfd2<0) { printf("fail to create stcp client sock"); exit(1); } if(stcp_client_connect(sockfd2,SERVERPORT2)<0) { printf("fail to connect to stcp server\n"); exit(1); } printf("client connected to server, client port:%d, server port %d\n",CLIENTPORT2, SERVERPORT2); //通过第一个连接发送字符串 char mydata[6] = "hello"; int i; for(i=0;i<5;i++){ stcp_client_send(sockfd, mydata, 6); printf("send string:%s to connection 1\n",mydata); } //通过第二个连接发送字符串 char mydata2[7] = "byebye"; for(i=0;i<5;i++){ stcp_client_send(sockfd2, mydata2, 7); printf("send string:%s to connection 2\n",mydata2); } //等待一段时间, 然后关闭连接 sleep(WAITTIME); if(stcp_client_disconnect(sockfd)<0) { printf("fail to disconnect from stcp server\n"); exit(1); } if(stcp_client_close(sockfd)<0) { printf("fail to close stcp client\n"); exit(1); } if(stcp_client_disconnect(sockfd2)<0) { printf("fail to disconnect from stcp server\n"); exit(1); } if(stcp_client_close(sockfd2)<0) { printf("fail to close stcp client\n"); exit(1); } //停止重叠网络层 son_stop(son_conn); }