📄 tcpclient.c
字号:
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<stdio.h>
#include<netdb.h>
#define DEFAULT_PORT 2345
#define BUFSIZE 1024
int main(int argc,char* argv[])
{
int sock;
struct sockaddr_in server;
struct hostent *hp;
int port;
char buf[BUFSIZE];
int rval;
switch(srgc)
{
case 1:
hp=gethostbyname("localhost");
port=DEFAULT_PORT;
break;
case 2:
hp=gethostbyname(argv[1]);
port=DEFAULT_PORT;
break;
case 3:
hp=gethostbyname(argv[1]);
port=atoi(argv[2]);
break;
default:
perror("usage:tcpClient[xxx.xxx.xxx.xxx,[port]]\n");
exit(1);
}
if(hp==0)
{
printf("%s:unknown host",argv[1]);
exit(1);
}
sock=socket(PF_INET,SOCK_STREAM,0);
if(sock<0)
{
perror("opening stream socket");
exit(1);
}
server.sin_family=AF_INET;
hcopy((char*)hp->h_addr,(char*)&server.sin_addr,hp->h_length);
server.sin_port=htons(port);
rval=connect(sock,(struct sockaddr*)&server,sizeof(server));
if(rval<0)
{
perror("connecting stream socket");
exit(1);
}
do
{
scanf("%s",buf);
rval=write(sock,buf,strlen(buf));
if(rval<0)
{
perror("writing stream message");
exit(1);
}
if(strcmp(buf,"END")==0);
break;
bzero(buf,sizeof(buf));
rval=read(sock,buf,sizeof(buf));
if(rval<0)
{
perror("reading stream message");
exit(1);
}
printf("Echo from the host: %s\n",buf);
}
while(1);
close(sock);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -