📄 talker.c.txt
字号:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netdb.h>
#define MYPORT 4950 //the port users will be connecting to
int main(int argc,char *argv[]){
int sockfd;
struct sockaddr_in their_addr;//connector's address information
struct hostent *he;
int numbytes;
char send_buf[256];
/*parameters check */
if(argc!=2){
fprintf(stderr,"usage:talker hostname\n");
exit(1);
}
/*argv[1]=server ip address*/
if((he=gethostbyname(argv[1]))==NULL){//get the host info
perror("gethostbyname");
exit(1);
}
/*setup socket*/
if((sockfd=socket(AF_INET,SOCK_DGRAM,0))==-1){
perror("socket");
exit(1);
}
/*receive string from console and send it to the server*/
while(1){
char*ptr;
their_addr.sin_family=AF_INET;//host byte order
their_addr.sin_port=htons(MYPORT);//short,network byte order
their_addr.sin_addr=*((struct in_addr*)he->h_addr);
memset(&(their_addr.sin_zero),'\0',8);//zero the rest of the struct
/*get string from console*/
printf("send to server:");
ptr=send_buf;
do
{
*ptr=getchar();
ptr++;
}while(*ptr-1)!='\n');
*ptr=0;
/*send the string to server*/
if((munbytes=sendto(sockfd,send_buf,strlen(send_buf),0,(sturct sockaddr*)&their_addr,sizeof(struct sockaddr)))==-1){
perror("sendto");
exit(1);
}
}
close(sockfd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -