多人聊天程序的实现

本文详细介绍了如何利用Linux系统上的UDP套接字编程实现一个支持多人参与的聊天程序。通过创建并绑定UDP套接字,设置多线程处理并发连接,实现了消息的广播,确保每个在线用户都能接收到并显示所有聊天内容。同时,讨论了在网络编程中可能遇到的丢包、乱序问题及解决方案。
摘要由CSDN通过智能技术生成
/*************************************************************************
	> File Name: server.c
	> Author: qinf
	> Mail: 
	> Created Time: Thu 03 Apr 2014 09:39:57 AM CST
 ************************************************************************/

#include "mul_chat.h"

struct linknode {
	struct sockaddr_in addr;
	struct linknode *next;
};
typedef struct linknode *linklist;
linklist create_linklist();
void insert_linknode(linklist L, struct sockaddr_in client_addr);
void delete_linknode(linklist L, struct sockaddr_in client_addr);
int linklist_len(linklist L);

int main(int argc, char *argv[])
{
	int server_fd, serveraddr_len, client_len;
	struct sockaddr_in server_addr, client_addr;
	int pid, iret, result;
	fd_set inputs, testfds;
	struct timeval timeout;
	char buf[512];
	linklist L;
	L = create_linklist();

	//1.socket
	iret = server_fd = socket(AF_INET, SOCK_DGRAM, 0);
	if (iret == -1) {
		perror("socket
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值