本人想写一个类似聊天的程序,用的套接字socket(非阻塞IO),多个客户机给服务器发送信息,每一个客户机发送的信息在服务器进程中都能显示出来,服务器用了两个线程,一个用于和客户机建立关系,一个用于接收客户机发送的信息,可是我运行程序后接收不到客户机发送的信息,I/O多路复用有点迷惑,下面是服务器的代码,望大神给我这个菜鸟看看,给点指导。(我就用了一个客户机进程,建立连接后send 发送,后台接不到啊,后台显示sel...
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAXSOCKFD 10 #define GSMD_UNIX_socket "\0gsmd" #define GSMD_UNIX_socket_TYPE SOCK_STREAM int main(int argc,char *argv[]) { int sockfd,newsockfd,is_connected[MAXSOCKFD],fd; struct sockaddr_un addr; int addr_len = sizeof(struct sockaddr_in...
编TCP socket客户端程序的时候,一般都是这样的: 1.调用socket()得到TCP套接字 2.把这个套接字作为connect()的参数发动连接 3.传输完数据之后shutdown()然后close() 我不想反复调用socket()创建套接字,想节省 我打算: 1.sock_fd = socket() { 2.connect() 3.send() or recv() 4.shutdown(sock_fd) } 5.close(sock_fd) 循环2,3,4过程 但是用起来不行 具体表现: 如果connect()失败,这个sock_fd还可以再次利用,一旦connect()成...
编TCP socket客户端程序的时候,一般都是这样的: 1.调用socket()得到TCP套接字 2.把这个套接字作为connect()的参数发动连接 3.传输完数据之后shutdown()然后close() 我不想反复调用socket()创建套接字,想节省 我打算: 1.sock_fd = socket() { 2.connect() 3.send() or recv() 4.shutdown(sock_fd) } 5.close(sock_fd) 循环2,3,4过程 但是用起来不行 具体表现: 如果connect()失败,这个sock_fd还可以再次利用,一旦connect()成...
各位大神好,请教一个问题: 先说我的需求: 一台linux下有两张网卡, eth0 用于监听应用程序与外网服务器通讯 eth1 用于监听局域网其他机器的流量 本来是只用监听eth1上的流量即可,但是目前我需要同时监听eth0 eth1的两张网卡的数据. 请问我用socket(PF_PACKET , SOCK_RAW, htons(ETH_P_ALL));可以同时监听到两个网口吗? 还是需要其他的?
本帖最后由 cwsvincent 于 2012-04-28 10:12 编辑 大家好,看了一份源代码,就是mjpeg-streamer,用来做视频监控的,B/S架构。 服务器端开启10个线程,每个线程开了50个socket监听,每个socket都用select来处理请求,对于已accept的请求,再启动一个新线程来发送数据。 小弟对网络编程还不是很熟悉,请问这样可行么?还是我对代码理解有误。 代码大致如下(注释部分是我自己写的):[code]int output_run(int id) { /* cr...
在我的服务器上用netstat -ano一下,发现有很多的ESTABLISHED off (0.00/0/0)状态的连接,想问下各位大虾这个一般是什么问题造成的 ?
我设计是这样的 while(1) { 获取本地时间 ret=select(maxfd+1,readfds,null,null,time_out) ret=-1 { …… } ret=0 { 在相同时间 发送数据包 } ret>0 { 接收数据包 } } 很多台主机同时运行,现在遇到的问题是主机一直发包,却不见收到数据包。不知道为什么。socket是全双工的,应该不会出现只能发不能收的问题。 我怀疑是不是因为很多主机同时发包,没办法收数据包。可是不确定。 希望大家能指点一下。因为程序太多了,没办...
这样一段多播发送接收的代码,看起来没有问题,发送方的包可以抓到,但是接收方没有任何反应,请教一下高人问题出在哪里,gcc版本4.4.0, Fedora 11 Server启动以后用netstat没看到port 12345 Listener:[code]Listener Program /* * listener.c -- joins a multicast group and echoes all data it receives from * the group to its stdout... * * Antony Courtney, 25/11/94 * Modified by: Frédéric Bastien (25/03/0...