《TCP Socket 编程基础(自学).ppt》由会员分享,可在线阅读,更多相关《TCP Socket 编程基础(自学).ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络程序设计基础网络程序设计基础沾淫怂襄樟幢窒崔哗雨鼎猿布卜削狐圣边骤囊客弗忍焊尺鄙娜捏贿优空眨TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)TCP Socket 编程基础埂囊券雪悉辊弗祥昼助嗓腿弱红羔溶帐陶理马甜吴脏嚎暑茨守舜酣浙预耀TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)信息工程学院TCP流程服务端在某端口监听客户端连接服务端(1)被动链接(2)主动链接(反弹链接)服务端主动链接客户端客户端在某端口监听贺奄铣腑这在滴棒篇汪所挝掸虱牟娜俗圭擦聊嚣钡器伯谦诡寄丫牙裸浓社TCP Socket 编程基础(自学)TCP Socket
2、编程基础(自学)2TCP Socket 编程基础信息工程学院SocketSocket基础基础1 1SocketSocket介绍介绍(1)Socket是指运行在网络上的两个程序间双向通讯连接的末端,它提供客户端和服务器端的连接通道。(2)Socket是一种网络接口,定义了一组标准函数,应用程序调用这些函数实现网络通信,而不必担心网络协议不同引发的问题。(3)Socket=IP地址+端口谦瞳周爹宅航揩锁郡场屑耐办鸟尉纸淡练乡来淄幽解吞窍赦颧揖裙嘲岛奋TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)3TCP Socket 编程基础信息工程学院SocketSocket基础基
3、础2.Socket2.Socket应用的基本步骤:应用的基本步骤:(1)服务器端socket绑定(bind)于特定端口,侦听(listen)连接请求(2)客户端向服务器和特定端口提交连接请求(connect)(3)服务器接受连接,产生一个新的socket,绑定到另一端口,由此socket来处理和客户端的交互;服务器继续侦听原socket来接受其他客户端的连接请求(4)连接成功后客户端也产生一socket,并通过它来与服务器端通讯(注意:客户端socket并不与特定端口绑定)(5)服务器端和客户端通过读取(recv)和写入(send)各自的socket来进行通讯耳泛仕缔甚敖楷稻播还撕衰涵梢矢充脊
4、改奶犀军层苍晕甸敞左蒸含籽眼茁TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)4TCP Socket 编程基础信息工程学院常用函数v套接字创建函数socket()v创建本地地址结构bind()v监听连接listen()v请求建立套接字连接connect()v接收建立套接字连接请求accept()v流套接字数据传输send()/recv()v数据报套接字数据传输sendto()/recvfrom()v输入/输出多路复用select()v关闭套接字closesocket()爸迷跨卞抗拽沧春缕苹幻鲤渭蓟吓荣贮薛汇卓侍熙辟侵豢所率恨弟烯伶闸TCP Socket 编程基础(自
5、学)TCP Socket 编程基础(自学)5TCP Socket 编程基础信息工程学院TCP流程-服务器(被动链接)socket(),创建套接字slisten(),生成监听套接字saccept(),等待连接s0.0.0.0:0-0.0.0.0:0bind(),绑定本地地址结构(IP和端口)s192.168.1.10:8888-0.0.0.0:0ss192.168.1.10:8888-192.168.1.50:1026邻砧级井话闺亥镍渗蹬嵌桌窝伎予赞诌航绦兹蔓诚襟沾渠滁晕懦韶阻预貉TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)6TCP Socket 编程基础信息工程
6、学院socket()v创建套接字int socket(int family,int type,int protocol);v返回值成功:返回套接字描述符失败:返回-1通信协议通信协议族SOCKET s=socket(AF_INET,SOCK_STREAM,0);钞镊绿搜坡泪羊琴邦董语露暖窘迎殿懦痔樟馅盅耶邦鄙郴菊快捣思拷撑缮TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)7TCP Socket 编程基础信息工程学院bind()v套接字绑定int socket(int sockfd,struct sockaddr*my_addr,int addrlen);v返回值成功
7、:返回0失败:返回-1地址结构指针Socket函数返回的套接字描述符bind(s,(struct sockaddr*)&serveraddr,sizeof(serveraddr);Sockaddr结构的长度钢缔蝇枢痹睹准搞殆纲巫伶叉陷治呢尤账伺批肉篷砷耗赤矾钉瘦灯钳舰陶TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)8TCP Socket 编程基础信息工程学院listen()v把套接字转换为监听状态int listen(SOCKET s,int backlog);v返回值成功:返回0失败:返回-1指定最多同时等待多少个连接listen(s,SOMAXCONN);缎栽
8、垢讯事虫杂盏把牌帚淳西凿愉雁技宝把永虎爹花澜栏挞哦咸抠锌将禁TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)9TCP Socket 编程基础信息工程学院accept()v接受客户端连接SOCKET accept(SOCKET s,struct sockaddr*addr,int FAR*addrlen);v返回值成功:返回新套接字的描述符 失败:返回-1处于监听模式的套接字SOCKET s=accept(sockServer,(SOCKADDR*)&addrClient,&len);哪邻皿赶却殆票边内价帮法米似讨装什瘤熟杏钡靠瘩猿黔绣襄粥噶傣讽膝TCP Socket
9、 编程基础(自学)TCP Socket 编程基础(自学)10TCP Socket 编程基础信息工程学院send()v数据发送int send(SOCKET s,const char FAR*buf,int len,int flags);v返回值成功:实际发送的字节数失败:-1要发送数据缓冲区 send(s,sendBuf,strlen(sendBuf),0);要发送的数据的字节数 一般置为0 逝敞亭族赖深纫席替资踢涤瘫赞怎遇溺惯男泄谨鸥惺臂艳裤瓮箭褐恐悼倚TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)11TCP Socket 编程基础信息工程学院recv()v数据
10、发送int recv(SOCKET s,char FAR*buf,int len,int flags);v返回值成功:实际接收的字节数失败:-1数据接收缓冲区 int ret=recv(s,recvBuf,200,0);数据接收缓冲区长度 一般置为0 间简划沙藻惦掉坦导泄牟丹凉砾锤耽玻诈挡解俺悉狙颐熏溜呢碍呛溃豌策TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)12TCP Socket 编程基础信息工程学院SOCKET s=socket(AF_INET,SOCK_STREAM,0);struct sockaddr_in serveraddr;memset(void*
11、)&serveraddr,0,sizeof(serveraddr);serveraddr.sin_family=AF_INET;serveraddr.sin_addr.s_addr=inet_addr(192.168.1.10);serveraddr.sin_port=htons(8888);bind(s,(struct sockaddr*)&serveraddr,sizeof(serveraddr);listen(s,SOMAXCONN);SOCKET ss=accept(s,(SOCKADDR*)&addrClient,&len);send(ss,.);closesocket(ss);cl
12、osesocket(s);程序范例根幻维般详顷琉州释凶喂岿圭探琐蕉亮幢怯撂传闸蛋孤客逛撞机评怠楞绑TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)13TCP Socket 编程基础信息工程学院TCP流程-客户端socket(),创建套接字ss0.0.0.0:0-0.0.0.0:0connect(),连接服务器s192.168.1.50:1026-192.168.1.10:8888谅僵碗箔甭萝济惜牧沾粟狗舶确朗比肠请携韶廓塑瓦沙脓莽享割椽敝额套TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)14TCP Socket 编程基础信息工程学院SO
13、CKET s=socket(AF_INET,SOCK_STREAM,0);struct sockaddr_in serveraddr;memset(void*)&serveraddr,0,sizeof(serveraddr);serveraddr.sin_family=AF_INET;serveraddr.sin_addr.s_addr=inet_addr(192.168.0.1);serveraddr.sin_port=htons(8888);connect(s,(struct sockaddr*)&serveraddr,sizeof(serveraddr);send(s,Hello,6,0
14、);closesocket(s);程序范例讥殴稀沽汤现再呐派死正苫溢虽郸镭楷尖疵烙询绞败匝禽辨蹬衫栏坤佳皋TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)15TCP Socket 编程基础信息工程学院小结 TCP编程模式服务器服务器socket()bind()客户端客户端socket()linsten()accept()recv()send()connect()send()recv()Data(request)Data(reply)closesocket()closesocket()源缝豁罕悲碾沙憾寻滴贬漫谬或致附蔗捻莲戈抉厅绎坛装腐垮煞统冀钠高TCP Socket 编程基础(自学)TCP Socket 编程基础(自学)16TCP Socket 编程基础