网络编程,套接字编程入门
1 实验目的
- 入门网络编程,套接字编程
2 实验内容
2.1 基础实验内容(10分)
在服务器上使用Vim编写客户端和服务端代码,实现聊天功能(至少要实现一对一聊天,一对多作为加分项)。
- 学号最后一位是奇数,使用TCP套接字编程模型;偶数,使用UDP套接字编程模型
- 服务端
~/net_exp/server.c
,服务端绑定的端口号为30xxx
,xxx
为你的学号后3位,可以不间断向客户端发送消息 - 客户端
~/net_exp/client.c
,可以不间断向服务器发送消息
[!Warning]
必须在服务器指定的文件上进行编程(不接受在本地写代码,调试完,再拷贝到服务器),生成可执行文件也必须是指定的文件名
(1)如何测试结果
编好代码后,运行compile_and_run.sh
,将得到两个可执行文件server
和client
。
测试结果,开两个终端,皆登录服务器,一个运行聊天服务端(如./server 30089
),一个运行聊天客户端(如./client 127.0.0.1 30089
,127.0.0.1
是本机localhost
的意思)。
(2)常见错误
客户端发送一条消息,得等服务器发回一条信息,才能接着发,这不符合日常使用场景,客户端完全可以一次性输入多条消息。
提示:拿多线程来做,一个线程用于接收,一个线程用于发送。
2.2 挑战性任务(可选,加分项,5分)
实现简易版QQ功能,即客户端与客户端之间(通过服务器)聊天,服务器只是作为中转。
- 服务器能够接收来自多个不同客户端的连接。找几个同学,在他们的PC连上你的服务器(如
./client os.suqiankun.com 30089
),给你发消息,看你服务器是否都能收到 - 客户端与客户端之间能够实现聊天功能
3. 实验要求
- 基本要求见所有实验要求
- 截止时间为:2022-05-30 23:00
需要提交报告文件有:
- markdown文档
- 从markdown文档导出的pdf文档(如果是用Typora,软件有导出pdf功能:文件 --> 导出 --> PDF)
4. 评分
本次实验:10分
- 客户端,得3分
- 服务端,得4分
- 非关键性代码,得3分