Linux即时通信软件项目chatroom知识点整理(四)

17、如何实现文件传输?如果文件过大,如何保证数据正确地传输?

(1)客户端之间传输文件

A、B两用户登录服务器成功之后,便可使用文件传输API接口传送文件,当A使用API接口:BRAC_TransFile向B发送文件时,B收到文件后,将触发B的回调函数:文件传输回调函数(参考:BRAC_SetTransFileCallBack

内核使用UDP通道传输,不保证接收方收到的顺序与发送顺序相同,但是保证数据可达,丢包自动重传;

 (2) 

18、文件传输的过程会占用比较多的资源,如何解决? 

19、TCP与UDP的区别

  • TCP和UDP编程区别

TCP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt(); * 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、开启监听,用函数listen(); 
  5、接收客户端上来的连接,用函数accept(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接; 
  8、关闭监听; 

  TCP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置要连接的对方的IP地址和端口等属性; 
  5、连接服务器,用函数connect(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接;


  与之对应的UDP编程步骤要简单许多,分别如下: 
  UDP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、循环接收数据,用函数recvfrom(); 
  5、关闭网络连接; 

  UDP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置对方的IP地址和端口等属性; 
  5、发送数据,用函数sendto(); 
  6、关闭网络连接;

20、什么时候选择TCP和UDP

TCP:面向连接、可靠的通信方式,适用于传输大量数据、对可靠性要求高的场合
UDP:无连接、不可靠的通信方式,但由于无连接,传送速度较快,适用于对可靠性要求不高、数据量较小,速度要求较快的场合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux网络聊天室项目是一个基于Linux操作系统的聊天室应用程序。通过使用C语言编写服务器和客户端代码,可以实现多个用户之间的即时通信。该项目使用MySQL数据库来存储聊天室的相关信息,通过与数据库的交互来实现用户注册、登录、发送消息等功能。 要运行该项目,您需要先编译服务器端代码和客户端代码。编译服务器端的命令是: gcc server.c mysql.c -lmysqlclient -lpthread -o s 。 在编译完成后,您还需要在MySQL数据库中创建一个名为"chatroom"的数据库,并在其中创建一个名为"infor"的数据表。要进行此操作,您需要使用MySQL客户端工具,并执行相应的SQL语句。具体的数据库和数据表的创建可以在您的项目代码中找到。 网络聊天室项目通常包括以下几个主要功能: 1. 用户注册和登录:用户可以注册一个账号,并使用该账号登录到聊天室。 2. 消息发送和接收:用户可以向其他在线用户发送消息,并接收其他用户发送的消息。 3. 在线用户列表:显示当前在线的用户列表,以便用户选择与之进行聊天。 4. 聊天记录保存:将用户之间的聊天记录进行保存,以便后续查看。 在项目的代码中,您可以找到一些特定的函数和方法,例如print_all_data、search、Sconnect等。这些函数和方法用于与MySQL数据库进行交互,执行数据的插入、查询、删除等操作。 在项目的实现过程中,您可能还会使用到多线程编程技术,以实现多个用户的并发连接和通信。 总的来说,Linux网络聊天室项目是一个基于Linux操作系统的聊天室应用程序,通过使用C语言编写服务器和客户端代码,并结合MySQL数据库来实现用户注册、登录、发送消息等功能。您可以根据具体的需求和代码实现来进一步了解和定制该项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值