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

  • 9
  • 0
  • 约4.05千字
  • 约 12页
  • 2022-06-30 发布于江苏
  • 举报
C语言版-Socket通信原理(附运行截图) PAGE 3 1 简单的客户/服务器程序设计与实现 实验目的及要求: 1、熟悉C编程环境。 2、熟悉Socket编程原理,掌握简单的套接字编程。 实验设备: 硬件:PC机 软件:CodeBlocks 实验内容及步骤: 什么是 Socket? Socket 英文直译为“孔或插座”,也称为套接字。用于描述 IP 地址和端口号,是一种进程间的通信机制。你可以理解为 IP 地址确定了网内的唯一计算机,而端口号则指定了将消息发送给哪一个应用程序(大多应用程序启动时会主动绑定一个端口,如果不主动绑定,操作系统自动为其分配一个端口)。 Socket 的类型 Stream:一种流式 Socket,针对于面向连接的 TCP 服务应用,安全,但效率低。(本文重点) 程序并调试通过。 程序分两部分:客户程序和服务器程序。 工作过程是: 服务器首先启动,它创建套接字之后等待客户的连接;客户启动后创建套接字,然后和服务器建立连接;建立连接后,客户接收键盘输入,然后将数据发送到服务器,服务器收到到数据后,将接收到的字符在屏幕上显示出来。或者服务器接收键盘输入,然后将数据发送到客户机,客户机收到数据后,将接收到的字符在屏幕上显示出来。 服务器端代码: #include stdio.h #include winsock2.h #pragma comment (lib, ws2_32) #define N 20 struct stu { char no[20]; char name[20]; }d[N]; int fd(char *stum,int n) { int i,j; FILE *fp; char* res=; fp=fopen(D:\\student.txt,r); for( i=0;in;i++) fscanf(fp,%s\t%s,d[i].no,d[i].name); fclose(fp); for( j=0;jn;j++) { if(strcmp(d[j].no,stum)==0) {res=d[j].name; break;} res=no this student!; } return res; } int stuno() { FILE *fp; fp=fopen(D:\\student.txt,r); int i=1; char c; while(!feof(fp)){ while(c==\n) { i++; break; } c=fgetc(fp); continue; } fclose(fp); return i; } int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), wsaData); SOCKET s=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); struct sockaddr_in sockaddr; 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(listening on port [%d].\n, 8000); int i=stuno(); printf(%d,i); while(TRUE) { SOCKADDR clientAddr; int size=sizeof(SOCKADDR); SOCKET clientsocket; clientsocket=accept(s, clientAddr, size); printf(***SYS*** Ne

文档评论(0)

1亿VIP精品文档

相关文档