📄 sock_getip.c
字号:
#include <errno.h>#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <arpa/inet.h>#include <stdlib.h>void init_sockaddr(struct sockaddr_in *name,char *addr,char *serv){ name->sin_family=AF_INET; name->sin_addr.s_addr=inet_addr(addr); if (serv==NULL) name->sin_port=htons(0); else name->sin_port=htons(atoi(serv));}int socket_connect(char *hostname,char *serv_port) { int sockfd; struct sockaddr_in sockaddr; struct hostent *hp; char *host,myname[104]; /* init the IP and port of server*/ init_sockaddr(&sockaddr,hostname,serv_port); if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){ printf("socket create error\n"); exit(0); } if((connect(sockfd,(struct sockaddr *)&sockaddr,sizeof(sockaddr)))<0){ printf("cann't connect server%s\n",strerror(errno)); exit(0); } return(sockfd); }int main(int argc,char **argv) { int sockfd,n; char recvbuff[256],*host; static char xx[10]="asdfa"; struct sockaddr_in servaddr; if(argc<2) host="127.0.0.1"; else host=argv[1]; sockfd=socket_connect(host,"2003"); write(sockfd,xx,sizeof(xx)); while((n=read(sockfd,recvbuff,256))>0){ recvbuff[n]=0; printf("receve data is:%s",recvbuff); } if(n<0){ printf("read error"); exit(0); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -