一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(12)

          隨筆分類(23)

          隨筆檔案(42)

          文章分類(162)

          文章檔案(139)

          新聞檔案(10)

          相冊

          收藏夾(3)

          文章收集

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          借此地方整理以下socket編程的多種語言的實現(xiàn),socket可以跨平臺的通信,因此多語言、多平臺下的實現(xiàn)有必要了解的。代碼都是源自網(wǎng)上,感謝網(wǎng)友的分享。

          socket編程在windows下的C語言實現(xiàn),dev C++下編譯通過
          編譯時設置編譯選項 工具-->編譯選項-->編譯器,勾選在連接器命令行加入以下命令,在對話框中填-lwsock32
          //server.c
          #include <stdio.h>
          #include <Winsock2.h>
          int main()
          {
          ??? WORD wVersionRequested;
          ??? WSADATA wsaData;
          ??? int err;
          ???
          ??? wVersionRequested = MAKEWORD( 1, 1 );
          ???
          ??? err = WSAStartup( wVersionRequested, &wsaData );
          ??? if ( err != 0 ) {
          ??????? return;
          ??? }
          ???
          ??? if ( LOBYTE( wsaData.wVersion ) != 1 ||
          ??? HIBYTE( wsaData.wVersion ) != 1 ) {
          ??????? WSACleanup();
          ??????? return;
          ??? }
          ??? SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
          ???
          ??? SOCKADDR_IN addrSrv;
          ??? addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
          ??? addrSrv.sin_family=AF_INET;
          ??? addrSrv.sin_port=htons(6000);
          ???
          ??? bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
          ???
          ??? listen(sockSrv,5);
          ???
          ??? SOCKADDR_IN addrClient;
          ??? int len=sizeof(SOCKADDR);
          ??? while(1)
          ??? {
          ??????? SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
          ??????? char sendBuf[50];
          ??????? sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));
          ??????? send(sockConn,sendBuf,strlen(sendBuf)+1,0);
          ??????? char recvBuf[50];
          ??????? recv(sockConn,recvBuf,50,0);
          ??????? printf("%s\n",recvBuf);
          ??????? closesocket(sockConn);
          ??? }
          }

          //客戶端代碼
          #include <stdio.h>
          #include <Winsock2.h>
          int main()
          {
          ??? WORD wVersionRequested;
          ??? WSADATA wsaData;
          ??? int err;
          ???
          ??? wVersionRequested = MAKEWORD( 1, 1 );
          ???
          ??? err = WSAStartup( wVersionRequested, &wsaData );
          ??? if ( err != 0 ) {
          ??????? return;
          ??? }
          ???
          ??? if ( LOBYTE( wsaData.wVersion ) != 1 ||
          ??????? HIBYTE( wsaData.wVersion ) != 1 ) {
          ??????? WSACleanup( );
          ??????? return;
          ??? }
          ??? SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
          ???
          ??? SOCKADDR_IN addrSrv;
          ??? 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));
          ??? send(sockClient,"hello",strlen("hello")+1,0);
          ??? char recvBuf[50];
          ??? recv(sockClient,recvBuf,50,0);
          ??? printf("%s\n",recvBuf);
          ??? closesocket(sockClient);
          ??? WSACleanup();
          }

          posted on 2009-04-03 22:34 allic 閱讀(1151) 評論(0)  編輯  收藏 所屬分類: C/C++TCP/IP 開發(fā)win32
          主站蜘蛛池模板: 东至县| 梓潼县| 城口县| 大足县| 乐业县| 鄂托克前旗| 邳州市| 会宁县| 嵊泗县| 沁阳市| 澄城县| 黎城县| 桃源县| 隆安县| 勐海县| 曲麻莱县| 广宗县| 阿拉善左旗| 涡阳县| 祁阳县| 阆中市| 巴东县| 昌图县| 杭锦后旗| 陇南市| 平原县| 乳源| 蒙山县| 广宗县| 德州市| 商都县| 兴安县| 屏东市| 遂川县| 搜索| 肥西县| 什邡市| 江川县| 宣威市| 伊吾县| 黔东|