欢迎来到天天文库
浏览记录
ID:41037270
大小:39.00 KB
页数:4页
时间:2019-08-14
《linux网络编程socket》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
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、发送建立连接请求con
2、nect();4、收到连接响应;5、发送数据send();6、关闭socket,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、有客户端连接请求,为建立
3、请求的客户端创建一个socket,返回连接响应,accept();5、接受客户端发送的数据,recv();6、关闭,close(new_fd)。#include#include#include#include#include#include#include#include#defineMYPORT3999//listeningport#
4、defineBACKLOG10//maxconnectrequests#defineMAXDATASIZE100/*maxdatavolume*/#defineIP"127.0.0.1"main(intargc,char*argv[]){intsock_fd,numbytes;//char*buf;//buf=(char*)malloc(20);charbuf[20];structhostent*host;structsockaddr_inserv_addr;/*socket*/if((sock_fd=socket
5、(AF_INET,SOCK_STREAM,0))==-1){perror("socketcreaterror");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(IP);bzero(&(serv_addr.sin_zero),8);/*connect*/if(connect(sock
6、_fd,(structsockaddr*)&serv_addr,sizeof(structsockaddr))==-1){perror("connecterror");exit(1);}printf("Pleaseenterthestring:");gets(buf);/*send*/if((numbytes=send(sock_fd,buf,strlen(buf),0))==-1){perror("senderror");exit(1);}printf("send:%d",numbytes);close(
7、sock_fd);exit(0);}#include#include#include#include#include#include#include#include#defineMYPORT3999//listeningport#defineBACKLOG10//maxconnectrequests#defineMAXDATASIZE1
8、00/*maxdatavolume*/main(){intsock_fd,new_fd,numbytes;/*sock_fd:listeningsocket;new_fd:datasocket*/structsockaddr_inmy_addr;/*serveraddress*/structsockaddr_intheir_addr;/*clientaddr
此文档下载收益归作者所有