相关疑难解决方法(0)

如何在C中找到套接字连接状态?

我有一个TCP连接.服务器只是从客户端读取数据.现在,如果连接丢失,客户端在将数据写入管道(断开的管道)时将收到错误,但服务器仍会侦听该管道.如果连接是UP还是NOT,我能找到任何方法吗?

c network-programming

26
推荐指数
3
解决办法
9万
查看次数

如何避免服务器套接字的TIME_WAIT?

我知道你会把它掩盖为重复(问题1,问题2,问题3),但答案不是我正在寻找的(我认为也是其他人).
所以,我指的是socket master(我爱你们):如果我关闭套接字怎么能得到绑定错误(地址已经在使用中)?
我会描述我的问题.

我有一个与服务器 通信的客户端
在服务器中,我有两个套接字:sockS(主套接字,监听)和sockTX(客户端一个)
如果我调用我的程序一次,通信没问题,那么我关闭两个套接字
如果我记得服务器和客户端,我得到错误,我要等待TIME_WAIT(在Ubuntu 32bit上约3分钟)

为什么,在关闭两个套接字之后我仍然会遇到绑定错误?
有一种方法可以使它无任何魔法(SO_REUSEADDR)吗?
我知道我的代码中有些错误...

谢谢大家.

那是代码:
客户端

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <string.h>
#include <netdb.h>
#include <unistd.h>
#include <arpa/inet.h>

#define PORT 5000
#define SERVER "127.0.0.1"
#define MAXLINE 128

int printMessage(char* str);

int main(){
char buff[MAXLINE+1];

struct sockaddr_in server, client;
struct hostent *host;
int sock, n;
//socklen_t len;

    if((sock = socket(AF_INET,SOCK_STREAM,0)) == …
Run Code Online (Sandbox Code Playgroud)

c sockets linux

5
推荐指数
1
解决办法
6955
查看次数

标签 统计

c ×2

linux ×1

network-programming ×1

sockets ×1