当前位置: 技术问答>linux和unix
socket通信问题...请帮忙
来源: 互联网 发布时间:2015-09-23
本文导语: 下面是我一个客户端的代码, 如果我将client 套接子设成 non_block(用fcntl函数) 可以收到别的client发来的信息 但是为什么我采用select机制后,就收不到信息了呢? 谢谢...帮解决者马上给分 主要是主程序代码的while(1) 部分,...
下面是我一个客户端的代码,
如果我将client 套接子设成 non_block(用fcntl函数)
可以收到别的client发来的信息
但是为什么我采用select机制后,就收不到信息了呢?
谢谢...帮解决者马上给分
主要是主程序代码的while(1) 部分,结构应该比较清楚的
再次感谢
代码如下:
/*server open port 1888 to receive connection
*client use port 1889 to connect server
* and chat with other clients
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define BUFSIZE 100
#define CHARTPORT 1889
#define RECVPORT 2000
typedef struct {
char head;/*denote what action will be do,'0' get message from server,'1' get message
from other client*/
char message[200];
}MessagePack;
/*the function will check the ip that
*want to chat with is leagle or not
*/
int check_ip(char *ip)
{
int temp;
char ip_part[8];
char *position_old = ip;
char *position_new = ip;
int i = 0;
int count = 0;
for(i=0; i
如果我将client 套接子设成 non_block(用fcntl函数)
可以收到别的client发来的信息
但是为什么我采用select机制后,就收不到信息了呢?
谢谢...帮解决者马上给分
主要是主程序代码的while(1) 部分,结构应该比较清楚的
再次感谢
代码如下:
/*server open port 1888 to receive connection
*client use port 1889 to connect server
* and chat with other clients
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define BUFSIZE 100
#define CHARTPORT 1889
#define RECVPORT 2000
typedef struct {
char head;/*denote what action will be do,'0' get message from server,'1' get message
from other client*/
char message[200];
}MessagePack;
/*the function will check the ip that
*want to chat with is leagle or not
*/
int check_ip(char *ip)
{
int temp;
char ip_part[8];
char *position_old = ip;
char *position_new = ip;
int i = 0;
int count = 0;
for(i=0; i