📄 client.cpp
字号:
#include "Winsock.h"
#include "windows.h"
#include "stdio.h"
#pragma comment(lib,"wsock32.lib")
#define RECV_PORT 2000
#define SEND_PORT 3000
#define SERVERADDR "192.168.100.148"
SOCKET sock;
sockaddr_in ServerAddr;
DWORD StartSock()
{
WSADATA WSAData;
if (WSAStartup(MAKEWORD(2,2),&WSAData)!=0) //初始化套接字
//WSAStartup:加载Winsock DLL的相应版本.
//P1:版本XY,用MAKEWORD(X,Y)来生成,X-高位字节,Y-低位字节
//P2:指向WSADATA结构的指针,接收Winsock库版本信息.
{
printf("sock init fail!\n");
return(-1);
}
ServerAddr.sin_family=AF_INET; //填充服务器地址端口号
ServerAddr.sin_addr.s_addr=inet_addr(SERVERADDR);
ServerAddr.sin_port=htons(RECV_PORT);
return(1);
}
DWORD CreateSocket()
{
sock=socket(AF_INET,SOCK_STREAM,0); //创建套接字
//socket:创建套接字
//P1:网络类型,一般为了AF_INET,表示在Internet域中通信
//P2:套接字类型,SOCK_STREAM(会话套接字),SOCK_DGRAM(数据报套接字),SOCK_SEQPACKET,
// SOCK_RAW(原始套接字),SOCK_RDM.
//P3:网络协议,取0,表示TCP/IP.
//WSANOTINITIDLISED错误:未加载Winsock库
if (sock==SOCKET_ERROR)
{
printf("sock create fail!\n");
WSACleanup();
return(-1);
}
return(1);
}
DWORD CallServer()
{
CreateSocket();
if (connect(sock,(struct sockaddr *)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)
//connect:建立与一个服务器端的连接
//P1:一个未连接套接字的句柄.
//P2:SOCKADDR_IN结构的地址.
//P3:SOCKADDR_IN结构长度
{
printf("Connect fail\n");
closesocket(sock);
//closesocket:关闭一个套接字.
return(-1);
}
return(1);
}
DWORD TCPSend(char data[])
{
int length;
length=send(sock,data,strlen(data),0);
//send:在某个套接字上发送数据.
//P1:套接字句柄.
//P2:发送缓冲区.
//P3:发送缓冲区中的字符数.
//P4:调用的执行方式.
//返回发送的字节数.
if (length<=0)
{
printf("send data error!\n");
closesocket(sock);
WSACleanup();
return(-1);
}
return(1);
}
int main()
{
char buff[80];
int num,i;
StartSock();
while (CallServer()==-1);
printf("connect ok!\n");
printf("press any key to send!");
getchar();
for (;;)
{
printf("Input the number of message to send: (0-exit)");
memset(buff,0,80);
scanf("%d",&num);
if (num<=0)
break;
for (i=0;i<num;i++)
{
sprintf(buff,"data %d\n",i);
printf(buff);
TCPSend(buff);
Sleep(100);
}
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -