//服务端
#include <stdio.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
//初始化套接字版本
WSAData wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
//创建Socket
SOCKET Socket_Server;
Socket_Server = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (Socket_Server == INVALID_SOCKET)
{
printf("Socket error");
return;
}
//初始化地址
sockaddr_in ClientAddr;
ClientAddr.sin_family = AF_INET;
ClientAddr.sin_port = htons(8000);
ClientAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
//循环连接
while (true)
{
//连接
if (connect(Socket_Server,(LPSOCKADDR)&ClientAddr,sizeof(ClientAddr)) == SOCKET_ERROR)
{
printf("connect error/n");
Sleep(3000);
continue;
}
printf("连接成功");
break;
}
//发送
if (send(Socket_Server,"上线了",sizeof("上线了"),0) == SOCKET_ERROR)
{
printf("send error");
return;
}
//关闭Socket
closesocket(Socket_Server);
WSACleanup();
}
//-----------------------------------------------------------------------------------------------------------
//客户端
CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)StartListen,NULL,NULL,NULL);
DWORD StartListen(LPARAM *lparam)
{
WSAData wsaData;
//初始化套接字版本
WSAStartup(MAKEWORD(2,2),&wsaData);
SOCKET Socket_Client;
//创建套接字
Socket_Client = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (Socket_Client == INVALID_SOCKET)
{
printf("socket error");
return 0;
}
sockaddr_in sockaddr;
//初始化地址信息
sockaddr.sin_family = AF_INET;
sockaddr.sin_port = htons(8000); //8000端口
sockaddr.sin_addr.S_un.S_addr = INADDR_ANY; //表示所有可用的地址
//绑定套接字
if (bind(Socket_Client,(LPSOCKADDR)&sockaddr,sizeof(sockaddr)) == SOCKET_ERROR)
{
printf("bind error");
return 0;
}
//监听
if (listen(Socket_Client,5) == SOCKET_ERROR)
{
printf("listen error");
return 0;
}
SOCKET Socket_Server; //客户端
sockaddr_in remoteAddr; //服务端地址
int Addrlen = sizeof(remoteAddr);
char revData[255];
while (true)
{
//接收连接
Socket_Server = accept(Socket_Client,(LPSOCKADDR)&remoteAddr,&Addrlen);
if (Socket_Client == INVALID_SOCKET)
{
printf("accept error");
continue;
}
OutputDebugString("连接成功");
//接收数据
int ret = recv(Socket_Server,revData,sizeof(revData),0);
if (ret > 0)
{
MessageBox(0,revData,0,0);
}
}
closesocket(Socket_Server); //关闭socket
WSACleanup();
}
Socket连接
最新推荐文章于 2024-06-10 11:17:06 发布