📄 client.c
字号:
#include <stdio.h>
// #include <stdlib.h>
// #include <Winsock2.h>
#define DEFAULT_PORT 5050
#define DATA_BUFFER 1024
void main1(int argc, char *argv[])
{
WSADATA wsaData;
SOCKET sClient;
int iPort=DEFAULT_PORT;
//client address length
int iLen;
// sending data length
int iSend;
//receiving data length
int iRecv;
//messeger to client
char send_buf[]="Hello, I am a beginner !";
//data buffer to receive
char recv_buf[DATA_BUFFER];
//server address and client address
struct sockaddr_in ser, cli;
printf("----------------");
printf("Server waiting \n");
printf("----------------");
if(WSAStartup(MAKEWORD(2,2),&wasData)!=0);
{
printf("failed to load windsock. \n");
return;
}
//generate server socket
sSocket=socket(AF_INET,SOCK_DGRAM,0);
if(sSocket==INVALIDE_SOCKET)
{
printf("socket() failed: %d \n",WSAGetLastError());
return;
}
//buildup following server address
ser.sin_family=AF_INET;
//htons() function transfer a double byte order number of a host computer
// to internet byte order number
ser.sin_port=htons(iPort);
//htonl() function transfer a double byte order number of a host computer
// to internet byte order number
ser.sin_addr=htonl(INADDR_ANY);
if(bind(sSocket,(LPSOCKADDR)&ser,sizeof(ser))=SOCKET_ERROR)
{
printf("bind() failed: %d\n",WSAGetLastError());
return;
}
iLen=sizeof(cli);
//initialize the receiving buffer
memset(recv_buf,o, sizeof(recv_buf);
while(1)
{
//receive data from client
iRecv=recvfrom(sSocket,recv_buf,DATA_BUFFER,0,(SOCKETADDR*)&cli, &iLen);
if(iRecv==SOCKET_ERROR)
{
printf("recvfrom() failed: %d \n", WSAGetLastError());
break;
}
else if(iRecv==0)
break;
else
{
//output received data
printf("recvfrom(): %s\n", recv_buf);
//output client IP address and terminal number
printf("accepted client IP:[%s],port:[%d]\n,
inet_ntoa(cli.sin_addr),
ntohs(cli.sin_port));
}
//send msg to client
iSend=sendto(sSocket, send_buf,sizeof(send_buf),0,(SOCKADDR*)&cli,sizeof(cli);
if(iSend==SOCKET_ERROR)
{
printf("sendto() failed.:%d\n",WSAGetLastError());
break;
}
else if(iSend==0)
break;
else
{
printf("sendto() succeed !\n");
}
}
closesocket(sSocket);
WSACleanup();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -