65,210
社区成员
发帖
与我相关
我的任务
分享
//服务端
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32")
using namespace std;
int main()
{
WORD wdVersionRequired;
WSADATA wsaData;
int temp;
wdVersionRequired = MAKEWORD(2, 2);
temp = WSAStartup(wdVersionRequired, &wsaData);
//注意函数返回值,0表示正常
if (temp != 0)
{
return 0;
}
//创建SOCKET
SOCKET s;
s = socket(AF_INET, SOCK_STREAM, 0);
if (s == INVALID_SOCKET)
{
cout << "创建失败";
return 0;
}
//绑定SOCKET
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
service.sin_port = htons(27015);
temp = bind(s, (const sockaddr *)&service, sizeof(sockaddr));
if (temp != 0)
{
cout << "绑定失败";
return 0;
}
//监听SOCKET
temp = listen(s, 10);
if (temp != 0)
{
cout << "监听失败";
return 0;
}
//接受连接
char rbuf[32];
char sbuf[32]="我是服务端,这是我发送的。\n";
sockaddr sa;
int salen = sizeof(sockaddr);
SOCKET sClient;
cout<<"等待客户端连接\n";
while(1)
{
sClient = accept(s, &sa, &salen);
temp = recv(sClient, rbuf, sizeof(rbuf), 0);
cout<<rbuf;
if (temp != 0 && temp != SOCKET_ERROR)
{
send(sClient, sbuf, sizeof(sbuf), 0);
//cout << sbuf;
}
else
{
break;
}
}
WSACleanup();//释放
return 1;
}
//客户端
// C01.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <windows.h>
#pragma comment(lib, "ws2_32")
#include <iostream>
using namespace std;
int main()
{
WORD wdVersionRequired;
WSADATA wsaData;
wdVersionRequired = MAKEWORD(2, 2);
WSAStartup(wdVersionRequired, &wsaData);
//创建一个socket
SOCKET s;
s = socket(AF_INET, SOCK_STREAM, 0);
if(s == SOCKET_ERROR )
{
cout<<"创建失败";
return 0;
}
//连接服务器
sockaddr_in clientServer;
memset(&clientServer, 0, sizeof(clientServer));
clientServer.sin_family = AF_INET;
clientServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
clientServer.sin_port = htons(27015);
if(connect(s, (const sockaddr*)&clientServer, sizeof(sockaddr))==SOCKET_ERROR)
{
cout<<"连接失败";
return 0;
}
char sbuf[32] = "你好,我是客户端!\n";
char rbuf[32];
send(s, sbuf, sizeof(sbuf), 0);
recv(s, rbuf, sizeof(rbuf), 0);
//cout << sbuf;
cout << rbuf;
WSACleanup();
return 1;
}