hello world

          隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
          數據加載中……

          Socket阻塞通信

          server.cpp #include #include #pragma comment(lib,"WS2_32.lib") void main() { WSADATA wsd; SOCKET server; //服務器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); //創建socket addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); //設置地址 addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); //設置端口號 bind(server,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //綁定 listen(server,5); //設置最多連接數 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); //發送信息客戶端 recv(client,recvBuf,100,0); //接收客戶端數據 printf("%s\n",recvBuf); closesocket(client); } closesocket(client); //關閉連接 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:發起連接\n"); printf("\t2:發送數據\n"); printf("\t3:關閉連接\n"); printf("\t4:重新連接\n"); printf("\t0:關閉程序\n"); scanf("%d",&call); try{ switch(call) { case 1: printf("發起連接\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); //創建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)); //連接服務器端 recv(sockClient,recvBuf,100,0); //接收服務器端數據 printf("%s\n",recvBuf); break; case 2: printf("請輸入要發送的文字\n"); scanf("%s",&sendbuf); printf("%s\n",sendbuf); result = send(sockClient,sendbuf,50,0); //向服務器端發送數據 printf("操作結果:%d\n",result); break; case 3: result = closesocket(sockClient); printf("操作結果:%d\n",result);//關閉連接 WSACleanup(); printf("連接已經關閉\n"); break; case 4: printf("重新連接\n");//此處功能暫未實現 break; case 0: return; default: break; } }catch(Exception e) { } } }

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

          主站蜘蛛池模板: 桐柏县| 外汇| 丰城市| 平原县| 潍坊市| 铜陵市| 建始县| 麻栗坡县| 宁都县| 区。| 威宁| 新巴尔虎左旗| 昌图县| 阳新县| 玛纳斯县| 沧源| 独山县| 玉溪市| 商洛市| 宁强县| 金塔县| 定日县| 全州县| 桐庐县| 虹口区| 宜昌市| 乌拉特后旗| 抚州市| 玛多县| 秭归县| 山东| 甘洛县| 泰州市| 韩城市| 鄂伦春自治旗| 九龙县| 二连浩特市| 雅安市| 舟曲县| 台北市| 隆化县|