- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《网络程序设计》课程设计
基于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)