C语言版 Socket通信原理(附运行截图)

C语言版 Socket通信原理(附运行截图)

ID:39347104

大小:99.00 KB

页数:9页

时间:2019-07-01

C语言版 Socket通信原理(附运行截图)_第1页
C语言版 Socket通信原理(附运行截图)_第2页
C语言版 Socket通信原理(附运行截图)_第3页
C语言版 Socket通信原理(附运行截图)_第4页
C语言版 Socket通信原理(附运行截图)_第5页
资源描述:

《C语言版 Socket通信原理(附运行截图)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、简单的客户/服务器程序设计与实现实验目的及要求:1、熟悉C编程环境。2、熟悉Socket编程原理,掌握简单的套接字编程。实验设备:硬件:PC机软件:CodeBlocks实验内容及步骤:什么是Socket?Socket英文直译为“孔或插座”,也称为套接字。用于描述IP地址和端口号,是一种进程间的通信机制。你可以理解为IP地址确定了网内的唯一计算机,而端口号则指定了将消息发送给哪一个应用程序(大多应用程序启动时会主动绑定一个端口,如果不主动绑定,操作系统自动为其分配一个端口)。Socket的类型Stream:一种流

2、式Socket,针对于面向连接的TCP服务应用,安全,但效率低。(本文重点)Datagram:数据报式的Socket,针对于无连接的UDP服务应用,不安全(丢失、顺序混乱,往往在接收端要分析完整性、重排、或要求重发),但效率高。Socket程序一般应用模式及运行流程服务器端会启动一个Socket,开始监听端口,监听客户端的连接信息,我们称之为WatchSocket。客户端Socket连接服务器端的监听Socket,一旦成功连接,服务器端会立刻创建一个新的Socket负责与客户端进行通信,之后,客户端将不再与Wa

3、tchSocket通信。WatchSocket继续监听可能会来自其他客户端的连接。上述过程就像是实现了一次三方会谈。服务器端的Socket至少会有2个。一个是WatchSocket,每成功接收到一个客户端的连接,便在服务器端创建一个通信Socket。客户端Socket指定要连接的服务器端地址和端口,创建一个Socket对象来初始化一个到服务器的TCP连接。编写用TCP协议实现的Client端和Server端程序并调试通过。程序分两部分:客户程序和服务器程序。工作过程是:服务器首先启动,它创建套接字之后等待客户的

4、连接;客户启动后创建套接字,然后和服务器建立连接;建立连接后,客户接收键盘输入,然后将数据发送到服务器,服务器收到到数据后,将接收到的字符在屏幕上显示出来。或者服务器接收键盘输入,然后将数据发送到客户机,客户机收到数据后,将接收到的字符在屏幕上显示出来。9服务器端代码:#include#include#pragmacomment(lib,"ws2_32")#defineN20structstu{charno[20];charname[20];}d[N];intfd(ch

5、ar*stum,intn){inti,j;FILE*fp;char*res="";fp=fopen("D:\student.txt","r");for(i=0;i

6、fp=fopen("D:\student.txt","r");inti=1;charc;while(!feof(fp)){while(c==''){i++;break;}9c=fgetc(fp);continue;}fclose(fp);returni;}intmain(){WSADATAwsaData;WSAStartup(MAKEWORD(2,2),&wsaData);SOCKETs=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);structsockaddr_inso

7、ckaddr;sockaddr.sin_family=PF_INET;sockaddr.sin_addr.S_un.S_addr=inet_addr("192.168.1.118");sockaddr.sin_port=htons(8000);bind(s,(SOCKADDR*)&sockaddr,sizeof(SOCKADDR));listen(s,1);printf("listeningonport[%d].",8000);inti=stuno();printf("%d",i);while(TRUE){

8、SOCKADDRclientAddr;intsize=sizeof(SOCKADDR);SOCKETclientsocket;clientsocket=accept(s,&clientAddr,&size);printf("***SYS***Newclienttouched.");char*msg="Hello,myclient.r";send(clientsocket,ms

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。