hello world

          隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          Socket阻塞通信

          server.cpp #include #include #pragma comment(lib,"WS2_32.lib") void main() { WSADATA wsd; SOCKET server; //服務(wù)器socket SOCKADDR_IN addrSrv; char sendBuf[100]; char recvBuf[100]; SOCKADDR_IN addrClient; SOCKET client; //連接的客戶端socket int len; if(WSAStartup(MAKEWORD(2,2),&wsd)!=0) { printf("start up failed!\n"); return ; } server=socket(AF_INET,SOCK_STREAM,0); //創(chuàng)建socket addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); //設(shè)置地址 addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); //設(shè)置端口號 bind(server,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //綁定 listen(server,5); //設(shè)置最多連接數(shù) len=sizeof(SOCKADDR); while(1) { client=accept(server,(SOCKADDR*)&addrClient,&len); //接收客戶端連接 sprintf(sendBuf,"Welcome %s ", inet_ntoa(addrClient.sin_addr)); send(client,sendBuf,strlen(sendBuf)+1,0); //發(fā)送信息客戶端 recv(client,recvBuf,100,0); //接收客戶端數(shù)據(jù) printf("%s\n",recvBuf); closesocket(client); } closesocket(client); //關(guān)閉連接 WSACleanup(); } client.cpp #include #include #pragma comment(lib,"WS2_32.lib") void main() { int call = 0; int result = 0; while(1) { printf("\n\n請輸入命令:\n"); printf("\t1:發(fā)起連接\n"); printf("\t2:發(fā)送數(shù)據(jù)\n"); printf("\t3:關(guān)閉連接\n"); printf("\t4:重新連接\n"); printf("\t0:關(guān)閉程序\n"); scanf("%d",&call); try{ switch(call) { case 1: printf("發(fā)起連接\n"); WSADATA wsd; SOCKET sockClient; //客戶端socket SOCKADDR_IN addrSrv; char recvBuf[100]; char sendbuf[100]; if(WSAStartup(MAKEWORD(2,2),&wsd)!=0) { printf("start up failed!\n"); return ; } sockClient=socket(AF_INET,SOCK_STREAM,0); //創(chuàng)建socket addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //連接服務(wù)器端 recv(sockClient,recvBuf,100,0); //接收服務(wù)器端數(shù)據(jù) printf("%s\n",recvBuf); break; case 2: printf("請輸入要發(fā)送的文字\n"); scanf("%s",&sendbuf); printf("%s\n",sendbuf); result = send(sockClient,sendbuf,50,0); //向服務(wù)器端發(fā)送數(shù)據(jù) printf("操作結(jié)果:%d\n",result); break; case 3: result = closesocket(sockClient); printf("操作結(jié)果:%d\n",result);//關(guān)閉連接 WSACleanup(); printf("連接已經(jīng)關(guān)閉\n"); break; case 4: printf("重新連接\n");//此處功能暫未實現(xiàn) break; case 0: return; default: break; } }catch(Exception e) { } } }

          posted on 2014-03-25 22:45 聽風(fēng) 閱讀(148) 評論(0)  編輯  收藏 所屬分類: C++

          主站蜘蛛池模板: 吉木萨尔县| 娄底市| 武鸣县| 仁布县| 沈丘县| 龙井市| 天台县| 类乌齐县| 梅河口市| 郁南县| 犍为县| 德格县| 成安县| 庄河市| 洮南市| 武强县| 手机| 双峰县| 奉贤区| 蓝山县| 吉水县| 云和县| 吉木乃县| 筠连县| 安乡县| 长海县| 江口县| 石家庄市| 韶山市| 抚顺市| 临沭县| 中卫市| 威海市| 渭源县| 鸡东县| 靖安县| 章丘市| 微山县| 老河口市| 易门县| 永胜县|