为了账号安全,请及时绑定邮箱和手机立即绑定

网络编程问题

网络编程问题

qq_莫非 2017-09-18 21:50:03
服务器端代码:#include <stdio.h>#include <strings.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#define PORT 1234#define BACKLOG 1int main(){    int listenfd,connectfd;    struct sockaddr_in server;    struct sockaddr_in client;    socklen_t addrlen;        if((listenfd=socket(AF_INET,SOCK_STREAM,0))==-1)    {        perror("socket() error.");        exit(1);    }    int opt=SO_REUSEADDR;    setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));        bzero(&server,sizeof(server));    server.sin_family=AF_INET;    server.sin_port=htons(PORT);    server.sin_addr.s_addr=htonl(INADDR_ANY);    if(bind(listenfd,(struct sockaddr *)&server,sizeof(server))==-1)    {        perror("Bind() error");        exit(1);    }    if(listen(listenfd,BACKLOG)==-1)    {        perror("listen() error.\n");        exit(1);    }    int len=sizeof(client);    if((connectfd==accept(listenfd,(struct sockaddr *)&client,&addrlen))==-1)    {        perror("accept() error\n");        exit(1);    }    printf("You got a connection from client's ip is %s, port is %d\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port));    send(connectfd,"Welcome\n",8,0);    close(connectfd);    close(listenfd);}客户端代码:#include <stdio.h>#include <unistd.h>#include <strings.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#define PORT 1234#define MAXDATASIZE 100int main(int argc,char *argv[]){    int sockfd,num;    char buf[MAXDATASIZE];    struct hostent *he;    struct sockaddr_in server;        if(argc!=2)    {        printf("Usage:%s<IP Address>\n",argv[0]);        exit(1);    }        if((he=gethostbyname(argv[1]))==NULL)    {        printf("gethostbyname() error\n");        exit(1);        }    if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)    {        printf("socket() error\n");        exit(1);        }    bzero(&server,sizeof(server));    server.sin_family=AF_INET;    server.sin_port=htons(PORT);    server.sin_addr=*((struct in_addr *)he->h_addr);    if(connect(sockfd,(struct sockaddr *)&server,sizeof(server))==-1)    {        printf("connect() error\n");        exit(1);    }    if((num=recv(sockfd,buf,MAXDATASIZE,0))==-1)    {        printf("recv() error\n");        exit(1);    }    buf[num-1]='\0';    printf("server message:%s\n",buf);    close(sockfd);}为什么我客户端用127.0.0.1测试的时候,客户端不输出服务器发给客户端的Welcone
查看完整描述

2 回答

已采纳
?
名分开就是姓名

TA贡献39条经验 获得超4个赞

require"(http").createServer(function(req,res){res.end("hi")}).listen(80)

查看完整回答
反对 回复 2017-09-19
?
名分开就是姓名

TA贡献39条经验 获得超4个赞

127.0.0.1:1234

查看完整回答
反对 回复 2017-09-19
  • 2 回答
  • 0 关注
  • 2231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信