📄 client.c
字号:
#if defined(WIN32)
#include "StdAfx.h"
#include <winsock2.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#endif
void main(int argc,char *argv[])
{
int sock;
int bufsize = 1024;
char *buffer = malloc(bufsize);
struct sockaddr_in address;
int err=0;
#if defined(WIN32)
WORD wVersionRequested;
WSADATA wsaData;
printf("Starting\n");
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
printf("Startup error %d\n", err);
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
printf("WinSock version is wrong.\n");
return;
}
#endif
printf("Creating socket\n");
sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (sock<=0)
{
printf("Fail to create socket, error %d\n", sock);
return;
}
printf("Connecting\n");
address.sin_family = AF_INET;
address.sin_port = htons(8000);
address.sin_addr.s_addr = inet_addr(argv[1]);
err = connect(sock,(struct sockaddr *)&address,sizeof(address));
if ( err != 0)
{
printf("Fail to connect, error %d\n", err);
return;
}
printf("The connection was accepted with the server %s...\n",inet_ntoa(address.sin_addr));
do{
recv(sock,buffer,bufsize,0);
printf("Message recieved: %s\n",buffer);
if (strcmp(buffer,"/q"))
{
printf("Message to send: ");
gets(buffer);
send(sock,buffer,bufsize,0);
}
}while (strcmp(buffer,"/q"));
close(sock);
#if defined(WIN32)
WSACleanup();
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -