您的位置:首页 > 理论基础 > 计算机网络

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

2008-10-28 00:51 357 查看
服务器端源码:

#include <winsock2.h>

#include <stdio.h>

#include <iostream>

#pragma comment(lib, "ws2_32.lib")

int main(void)

{

WORD wVer;

WSADATA wsaData;

int err;

wVer = MAKEWORD(2, 1);

err = WSAStartup(wVer, &wsaData);

if (err != 0)

{

return 0;

}

SOCKET socketServ = socket(AF_INET, SOCK_STREAM, 0);

SOCKADDR_IN addrServ;

addrServ.sin_addr.S_un.S_addr = htonl(INADDR_ANY);

addrServ.sin_family = AF_INET;

addrServ.sin_port = htons(6000);

bind(socketServ, (SOCKADDR *)&addrServ, sizeof(SOCKADDR));

listen(socketServ, 5);

SOCKADDR_IN addrClient;

int len = sizeof(SOCKADDR);

while(1)

{

SOCKET sockConn = accept(socketServ, (SOCKADDR *)&addrClient, &len);

char sendBuff[100];

sprintf(sendBuff, "Welcome to %s http://www.sxs.la.",inet_ntoa(addrClient.sin_addr));
send(sockConn, sendBuff, strlen(sendBuff) + 1, 0);

char recvBuff[100];

recv(sockConn, recvBuff, 100, 0);

printf("%s/n", recvBuff);

closesocket(sockConn);

}

return 0;

}

客户端程序源码:

#include <winsock2.h>

#include <iostream>

#pragma comment(lib, "ws2_32.lib")

int main(void)

{

WORD wVer;

WSADATA wsaData;

int err;

wVer = MAKEWORD(2, 1);

err = WSAStartup(wVer, &wsaData);

if (err != 0)

{

printf("abc");

return 0;

}

SOCKET socketClient = socket(AF_INET, SOCK_STREAM, 0);

SOCKADDR_IN addrServ;

addrServ.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

addrServ.sin_family = AF_INET;

addrServ.sin_port = htons(6000);

connect(socketClient, (SOCKADDR*)&addrServ, sizeof(SOCKADDR));

char recvBuff[100];

recv(socketClient, recvBuff, 100, 0);

printf("%s/n", recvBuff);

//char sendBuff[100];

send(socketClient, "This is Client!", strlen("This is Client!") + 1, 0);

closesocket(socketClient);

WSACleanup();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: