网络编程,套接字编程入门

1 实验目的

  • 入门网络编程,套接字编程

2 实验内容

2.1 基础实验内容(10分)

在服务器上使用Vim编写客户端和服务端代码,实现聊天功能(至少要实现一对一聊天,一对多作为加分项)。

  • 学号最后一位是奇数,使用TCP套接字编程模型;偶数,使用UDP套接字编程模型
  • 服务端~/net_exp/server.c,服务端绑定的端口号为30xxxxxx为你的学号后3位,可以不间断向客户端发送消息
  • 客户端~/net_exp/client.c,可以不间断向服务器发送消息

[!Warning]

必须在服务器指定的文件上进行编程(不接受在本地写代码,调试完,再拷贝到服务器),生成可执行文件也必须是指定的文件名

(1)如何测试结果

编好代码后,运行compile_and_run.sh,将得到两个可执行文件serverclient

测试结果,开两个终端,皆登录服务器,一个运行聊天服务端(如./server 30089),一个运行聊天客户端(如./client 127.0.0.1 30089127.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分
本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2023-05-16 22:15

results matching ""

    No results matching ""