一个Socket网络编程的简单例子

 服务器端源码:

  1. #include <winsock2.h>
  2. #include <stdio.h>
  3. #include <iostream>
  4. #pragma comment(lib, "ws2_32.lib")
  5. int main(void)
  6. {
  7.     WORD wVer;
  8.     WSADATA wsaData;
  9.     int err;
  10.     wVer = MAKEWORD(2, 1);
  11.     err = WSAStartup(wVer, &wsaData);
  12.     if (err != 0)
  13.     {
  14.         return 0;
  15.     }
  16.     SOCKET socketServ = socket(AF_INET, SOCK_STREAM, 0);
  17.     SOCKADDR_IN addrServ;
  18.     addrServ.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
  19.     addrServ.sin_family = AF_INET;
  20.     addrServ.sin_port = htons(6000);
  21.     bind(socketServ, (SOCKADDR *)&addrServ, sizeof(SOCKADDR));
  22.     listen(socketServ, 5);
  23.     SOCKADDR_IN addrClient;
  24.     int len = sizeof(SOCKADDR);
  25.     while(1)
  26.     {
  27.         SOCKET sockConn = accept(socketServ, (SOCKADDR *)&addrClient, &len);
  28.         char sendBuff[100];
  29.         sprintf(sendBuff, "Welcome to %s http://www.sxs.la.",inet_ntoa(addrClient.sin_addr));
  30.         send(sockConn, sendBuff, strlen(sendBuff) + 1, 0);
  31.         char recvBuff[100];
  32.         recv(sockConn, recvBuff, 100, 0);
  33.         printf("%s\n", recvBuff);
  34.         closesocket(sockConn);
  35.     }
  36.     return 0;
  37. }

 

客户端程序源码:

  1. #include <winsock2.h>
  2. #include <iostream>
  3. #pragma comment(lib, "ws2_32.lib")
  4. int main(void)
  5. {
  6.     WORD wVer;
  7.     WSADATA wsaData;
  8.     int err;
  9.     wVer = MAKEWORD(2, 1);
  10.     err = WSAStartup(wVer, &wsaData);
  11.     if (err != 0)
  12.     {
  13.         printf("abc");
  14.         return 0;
  15.     }
  16.     SOCKET socketClient = socket(AF_INET, SOCK_STREAM, 0);
  17.     SOCKADDR_IN addrServ;
  18.     addrServ.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
  19.     addrServ.sin_family = AF_INET;
  20.     addrServ.sin_port = htons(6000);
  21.     
  22.     connect(socketClient, (SOCKADDR*)&addrServ, sizeof(SOCKADDR));
  23.     char recvBuff[100];
  24.     recv(socketClient, recvBuff, 100, 0);
  25.     printf("%s\n", recvBuff);
  26.     //char sendBuff[100];
  27.     send(socketClient, "This is Client!", strlen("This is Client!") + 1, 0);
  28.     closesocket(socketClient);
  29.     WSACleanup();
  30.     return 0;
  31. }

 

posted @ 2008-10-28 00:51  冷寒生  阅读(342)  评论(0编辑  收藏  举报
IT知识库