基于socket的聊天系统设计.docVIP

  • 5
  • 0
  • 约2.61万字
  • 约 26页
  • 2019-09-20 发布于江西
  • 举报
《网络程序设计》课程设计 基于socket的聊天系统设计 摘要:本设计通过研究讨论,设计了基于socket编程的网络聊天系统,并且通过验证与测试,证明了系统的可用性、易用性、完善性。 关键词:socket、server、client、聊天系统 引言:socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。 一、开发原理 服务器:使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。   客户端:使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。 二、实现目标 根据客户机提出各种请求,服务器能够根据不同请求,发送不同的响应,最终实现服务器端与客户机端的聊天功能。 三、设计实现过程 (一) /************************************************************ *chat.h * 基于socket的聊天客户机和服务器的头文件 * Copyright by Subo, All Right Reserved *设计思路: * 客户机提出各种请求,服务器根据不同请求,发送不同的响应. *关键问题: * 客户机和服务器之间协议制订 *************************************************************/ #include netinet/in.h // for sockaddr_in #include sys/types.h // for socket #include sys/socket.h // for socket #include stdio.h // for printf #include stdlib.h // for exit #include string.h // for bzero /************************************************************ *服务器端口定义 *************************************************************/ #define CHAT_SERVER_PORT (6666) /************************************************************ *报文类型定义 *************************************************************/ #define NO_COMMAND (100) //客户端发送报文类型 #define REGISTER (1) #define LOGIN (2) #define GET_USER_LIST (3) #define TALK_TO (4) #define EXIT (5) #define CHANGE (6) #define GET_MESSAGE (7) //服务器端发送报文类型 #define SUCCEED (0) #define FAIL (-1) #define TRANSFER (80) /************************************************************ *报文格式定义 *************************************************************/ #define COMMAND_SIZE (sizeof(char)) #define OPTION_SIZE (16) #define ID_SIZE (OPTION_SIZE) #define PASSWORD_SIZE (OPTION_SIZE) #define MESSAGE_SIZE (1024) typedef struct chat_package { signed char typ

文档评论(0)

1亿VIP精品文档

相关文档