📄 client.c
字号:
/* client.c */
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <netinet/in.h>
#define SERVPORT 3333
#define MAXDATASIZE 100
int main(int argc,char *argv[])
{
int local_sockfd,sendbytes;
char buf[MAXDATASIZE];
struct hostent *host;
/*
struct hostent { char *h_name; //正式主机名
char **h_aliases; //主机别名
int h_addrtype; //地址类型
int h_length; //地址长度
char **h_addr_list; //指向IPv4或IPv6的地址指针数组
}
*/
struct sockaddr_in remote_addr; //connector's address information
if(argc<2)
{
fprintf(stderr,"Please enter the remote's hostname!\n");
exit(1);
}
if((host=gethostbyname(argv[1]))==NULL) //gethostbyname将主机名转换为IP地址
{
perror("gethostbyname");
exit(1);
}
if((local_sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("local socket");
exit(1);
}
remote_addr.sin_family=AF_INET;
remote_addr.sin_port=htons(SERVPORT);
remote_addr.sin_addr=*((struct in_addr *)host->h_addr); //h_addr是h_addr_list中的第一地址
bzero(&(remote_addr.sin_zero),8);
if(connect(local_sockfd,(struct sockaddr *)&remote_addr,sizeof(struct sockaddr))==-1)
{
perror("connect");
exit(1);
}
if((sendbytes=send(local_sockfd,"jaywoo",6,0))==-1)
{
perror("send");
exit(1);
}
close(local_sockfd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -