⑴ linux Socket编程求助啊,一个服务器和多个客户端通信问题求助
如果客户端并发连接数不是很大,比如50个以下,可以用如下模型:
建立一个监听主线程,循环监听端口。
当有客户端连接键碰时,建立客户端通讯线程,并保留客户端源穗socket到链表中。稿裂谈
当客户端断开连接时,从socket链表中删除该socket。
⑵ 如何用linux socket tcp实现一台主机向多台主机同时发送信息
多建几个socket就行了啊
做个无限循环, 每次accept一个请求就新建一个线程和socket,在新的线程中对新的socket读写
⑶ linux c socket 如何实现一个进程多个线程,每个线程管理多个socket连接
大家仔细看,楼主的题目还是很有难度的呢,一个进程多个线程容易实现,但是要让这些线程中每个线程都管理多个socket连接,确实比较难~~坐等高手。
不过一般都是一个线程处理一个socket连接,这种例子是:
(取自书上,仅供学习,直接编译肯定通不过,少书上其他代码)
==================================================
/* include serv06 */#include "unpthread.h"
intmain(int argc, char **argv)
{
int listenfd, connfd;
void sig_int(int);
void *doit(void *);
pthread_t tid;
socklen_t clilen, addrlen;
struct sockaddr *cliaddr;
if (argc == 2) listenfd = Tcp_listen(NULL, argv[1], &addrlen);
else if (argc == 3)
listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
else
err_quit("usage: serv06 [ <host> ] <port#>");
cliaddr = Malloc(addrlen);
Signal(SIGINT, sig_int);
for ( ; ; ) { clilen = addrlen;
connfd = Accept(listenfd, cliaddr, &clilen);
Pthread_create(&tid, NULL, &doit, (void *) connfd); }
}
void *doit(void *arg)
{
void web_child(int);
Pthread_detach(pthread_self()); web_child((int) arg);
Close((int) arg);
return(NULL);
}
/* end serv06 */
voidsig_int(int signo)
{
void pr_cpu_time(void);
pr_cpu_time(); exit(0);
}
================================================================
⑷ Linux编程socket通信疑问
什么是Socket
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。
Socket接口设计者......
答案就在这里:linux
socket
通信编程
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?