ecc.c

来自「daytime服务」· C语言 代码 · 共 99 行

C
99
字号
#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<netdb.h>

#include<string.h>

#include<stdlib.h>

#include<unistd.h>

#include<stdio.h>


int main(int argc,char *argv[]) 

{ 

int server,n; 

struct sockaddr_in servaddr; 

char recieve[1024],buf[1024]; /*接收和发送缓冲区*/


if(argc!=2) 

{ 

perror("Usage: server ip"); 

exit(1); 

} 

if((server=socket(AF_INET,SOCK_DGRAM,0))==-1) /*使用UDP方式连接*/

{ 

perror("socket error"); 

exit(1); 

} 

servaddr.sin_family=AF_INET; 

servaddr.sin_port=htons(7); /*使用端口7*/

if((servaddr.sin_addr.s_addr=inet_addr(argv[1]))==INADDR_NONE) /*将server的ip地址读入*/

{ 

perror("inet_addr error"); 

exit(1); 

} 

if(connect(server,(struct sockaddr*)&servaddr,sizeof(servaddr))==-1) /*连接到服务器,将服务器地址绑定到SOCKET*/

{ 

perror("connect error"); 

exit(1); 

} 
printf("Input a string:");
scanf("%s",buf);
/*write与read函数在这里功能上和recvfrom、sendto函数完全相同*/

write(server,buf,strlen(buf)+1); /*连接到server :对应于server的recvfrom函数*/

if((n=read(server,recieve,1024))>0) /*读入server发出的字符串,并显示*/

{ 

recieve[n]=0; 

if(fputs(recieve,stdout)==EOF) 

perror("fputs error"); 

}
printf("\n");

close(server); 

exit(0); 

} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?