- 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
您可能关注的文档
- 会计审计论文关于加强企业内部审计质量控制的几点思考.doc
- 会计审计论文加强林业企业会计监督的思考.doc
- 会计师事务所审计风险控制研究(论文提纲).doc
- 会计学 全套课件第2章会计科目和账户.ppt
- 会计学本科毕业论文新所得税准则实施对上市公司业绩的影响探析.doc
- 会计研究 浅析会计电算化环境下的企业内部控制.doc
- 会计制度作业06任务.doc
- 会计准则课件新旧会计准则比较.ppt
- 惠买车汽车电商解决方案.ppt
- 惠普供应链管理制胜_管理信息化_SCM及物流.doc
- 人教版九年级英语Unit 4曾害怕课件3a-4c.pdf
- 雅思口语考题回顾:朗阁海外考试研究中心2019年10月10日Part 1考题总结.pdf
- 2026届高三地理一轮复习课件小专题河流袭夺.pptx
- 【名师原创】复习专题5 三角函数 作者:合肥市第八中学 蒲荣飞名师工作室.docx
- 高中数学一轮复习 微专题2 抽象函数.docx
- 高中数学——复习专题4 空间向量与立体几何.docx
- 高中数学一轮复习 微专题3 空间几何体中的截面、轨迹问题.docx
- 高中数学一轮复习 微专题4 空间几何体的最值、范围问题.docx
- 导流洞施工质量通病防治手册.docx
- 江苏省徐州市第一中学、徐市第三中学等五校2026届高三上学期12月月考历史试题含答案.docx
原创力文档

文档评论(0)