socket编程,先来个简单的TCP例子吧

来源:互联网 发布:淘宝买家投诉举证 编辑:程序博客网 时间:2024/06/07 04:00

Server端:

#include <Winsock2.h>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")#define  PORT_NUMBER 11234#define  MAX_BUF_SIZE 1024int main(){WSADATA wSaData;WORD dwSockVersion = MAKEWORD(2,2);if (0 != WSAStartup(dwSockVersion,&wSaData)) //协商版本号{printf("Arrange Version Failure");return -1;}SOCKET nSocket;nSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建TCP socketif (INVALID_SOCKET == nSocket){printf("invalid socket");WSACleanup();return -1;}sockaddr_in sa;sa.sin_family = AF_INET;sa.sin_addr.s_addr = inet_addr("127.0.0.1");sa.sin_port = htons(PORT_NUMBER);//选择一个端口号if (bind(nSocket,(sockaddr *)&sa,sizeof(sa)) < 0) //绑定{closesocket(nSocket);return -1;}listen(nSocket,2);sockaddr_in addr_client;int nAddrLen = sizeof(addr_client);    SOCKET nSock = accept(nSocket,(sockaddr *)&addr_client,&nAddrLen);while(TRUE){if (INVALID_SOCKET == nSock){printf("failure to accept");continue;}char tmp[MAX_BUF_SIZE] = {0};char buf[MAX_BUF_SIZE] = {0};const char *pBuffer = "the server recvie the infromation\n";send(nSock, pBuffer, strlen(pBuffer), 0);int nRecv = recv(nSock, buf, MAX_BUF_SIZE, 0);if (nRecv > 0){printf("%s\n",buf);        }    }    closesocket(nSock);return 0;}

Client端:

#include <Winsock2.h>#include <stdio.h>#include <iostream>#pragma comment(lib,"ws2_32.lib")#define  MAX_BUF_SIZE 1024#define  PORT_NUMBER 11234int main(){WSADATA wSaData;WORD dwSockVersion = MAKEWORD(2,2);if (0 != WSAStartup(dwSockVersion,&wSaData)) //协商版本号{printf("Arrange Version Failure");return -1;}SOCKET nSocket;nSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建TCP socketif (INVALID_SOCKET == nSocket){printf("invalid socket");WSACleanup();return -1;}sockaddr_in sa;sa.sin_family = AF_INET;sa.sin_addr.s_addr = inet_addr("127.0.0.1"); // accept the local IPsa.sin_port = htons(PORT_NUMBER);if ( 0 != connect( nSocket,( const SOCKADDR * )&sa, sizeof(sa) ) )return -1;char buf[MAX_BUF_SIZE] = {0};char tmp[MAX_BUF_SIZE] = {0};strcpy(tmp,"this is Client!");int nRecv = 0;    const char *pClientBuffer = "sent a Message to the server";    int nSend = send(nSocket, pClientBuffer, strlen(pClientBuffer), 0);    while(nSend != 0) {    nRecv = recv(nSocket, buf, MAX_BUF_SIZE, 0);    if (nRecv > 0)    {    printf("%s\n",buf);            std::cout << "Input the Client Message: " << std::endl;            std::cin >> tmp;    nSend = send(nSocket, tmp, (int)strlen(tmp), 0);            if(nSend != 0) {                int i = WSAGetLastError();                int j = 0;            }        } else{            break;        }    }closesocket(nSocket);WSACleanup();return 0;}


0 0
原创粉丝点击