linux网络编程socket

上传人:博****1 文档编号:472007783 上传时间:2024-01-15 格式:DOC 页数:4 大小:39KB
返回 下载 相关 举报
linux网络编程socket_第1页
第1页 / 共4页
linux网络编程socket_第2页
第2页 / 共4页
linux网络编程socket_第3页
第3页 / 共4页
linux网络编程socket_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《linux网络编程socket》由会员分享,可在线阅读,更多相关《linux网络编程socket(4页珍藏版)》请在金锄头文库上搜索。

1、网络编程的流程:客户端:1、 创建一个socket;2、 绑定socket(IP,端口号);因为在connect()中已经绑定了,所以不需要用blind()函数来绑定。serv_addr.sin_family=AF_INET;serv_addr.sin_port=htons(MYPORT); /端口号也就是进程,相当于应用程序的编号。端口号要与服务端的一致,所以绑定的端口号是服务端的端口号serv_addr.sin_addr.s_addr=inet_addr(IP); /绑定的IP是本机的IP3、 发送建立连接请求connect();4、 收到连接响应;5、 发送数据send();6、 关闭s

2、ocket, close(sock_fd)。服务端端:1、 创建一个socket;2、 绑定socket(IP,端口号),blind();my_addr.sin_family = AF_INET;my_addr.sin_port = htons(MYPORT); /绑定的端口号是自己的端口号my_addr.sin_addr.s_addr = INADDR_ANY; / IP是客户端任意一个IP3、 侦听来自客户端的连接请求,listen();4、 有客户端连接请求,为建立请求的客户端创建一个socket,返回连接响应,accept();5、 接受客户端发送的数据,recv();6、 关闭,cl

3、ose(new_fd)。#include #include #include #include #include #include #include #include #define MYPORT 3999 /listening port#define BACKLOG 10 /max connect requests#define MAXDATASIZE 100 /*max data volume */#define IP 127.0.0.1main(int argc,char *argv) int sock_fd,numbytes;/ char *buf;/ buf=(char *)mall

4、oc(20); char buf20; struct hostent *host; struct sockaddr_in serv_addr;/*socket*/ if(sock_fd=socket(AF_INET,SOCK_STREAM,0)=-1) perror(socket creat error);exit(1); serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(MYPORT); / serv_addr.sin_addr=inet_addr(IP); serv_addr.sin_addr.s_addr=inet_addr(I

5、P); bzero(&(serv_addr.sin_zero),8);/*connect*/ if(connect(sock_fd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr)=-1) perror(connect error);exit(1); printf(Please enter the string:n); gets(buf);/*send*/ if(numbytes=send(sock_fd,buf,strlen(buf),0)=-1) perror(send error);exit(1); printf(send:%dn

6、,numbytes); close(sock_fd); exit(0);#include #include #include #include #include #include #include #include #define MYPORT 3999/listening port#define BACKLOG 10/max connect requests#define MAXDATASIZE 100/*max data volume */main()int sock_fd, new_fd, numbytes;/*sock_fd:listening socket;new_fd:data s

7、ocket */struct sockaddr_in my_addr;/*server address */struct sockaddr_in their_addr;/*client address */int sin_size;char bufMAXDATASIZE;/*创建socket*/if (sock_fd = socket(AF_INET, SOCK_STREAM, 0) = -1) perror(socket create error);exit(1);my_addr.sin_family = AF_INET;my_addr.sin_port = htons(MYPORT);my

8、_addr.sin_addr.s_addr = INADDR_ANY;bzero(&(my_addr.sin_zero), 8);if (bind (sock_fd, (struct sockaddr *) &my_addr, sizeof(struct sockaddr) = -1) perror(bind error);exit(1);printf(bind successn); if (listen(sock_fd, BACKLOG) = -1) perror(listen error);exit(1);/*accept*/while (1) sin_size = sizeof(stru

9、ct sockaddr_in);if (new_fd = accept(sock_fd, (struct sockaddr *) &their_addr, &sin_size) = -1) perror(accept error);continue;printf(received a connect from:%sn, inet_ntoa(their_addr.sin_addr);if (numbytes = recv(new_fd, buf, MAXDATASIZE, 0) = -1) perror(recv error);exit(1);bufnumbytes = 0;printf(Received:%sn, buf);close(new_fd);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号