头文件:#include #include
定义函数:int setsockopt(int s, int level, int optname, const void * optval, ,socklen_toptlen);
函数说明:
s :setsockopt()用来设置参数s 所指定的socket 状态.
level :参数level 代表欲设置的网络...
分类:
其他好文 时间:
2015-01-26 17:05:03
阅读次数:
145
用getsockopt来判断,还是蛮准确的intSocketConnected(intsock){if(sock<=0)return0;structtcp_infoinfo;intlen=sizeof(info);getsockopt(sock,IPPROTO_TCP,TCP_INFO,&info,(socklen_t*)&len);if((info.tcpi_state==TCP_ESTABLISHED)){//myprintf("socketconnected\..
分类:
其他好文 时间:
2014-12-17 18:48:57
阅读次数:
153
Socket 基础API实践(2)--实现回射服务器accept函数功能:从已完成连接队列返回第一个连接,如果已完成连接队列为空,则阻塞。原型int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);参数 sockfd:服务器套接字 addr:将返回对等方的套接字地址 addrlen:返回对等方的套接字地址...
分类:
其他好文 时间:
2014-12-01 22:27:11
阅读次数:
269
我们为客户端的编写再做一些工作。 这次我们使用非阻塞IO实现connect函数。 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 在阻塞IO中,调用connect后一般会阻塞,直到确定连接成功或者失败。...
分类:
系统相关 时间:
2014-10-24 20:45:50
阅读次数:
290
/* 设置套接字选项周期性消息检测连通性 心跳包、 心博。主要用于长连接。 * 参数:套接字, 1或0开启, 首次间隔时间, 两次间隔时间, 断开次数 */void setKeepAlive( int iSockfd , int iSockAttrOn, socklen_t iIdleTime , ...
分类:
其他好文 时间:
2014-10-14 18:44:09
阅读次数:
197
理解struct msghdr当我第一次看到他时,他看上去似乎是一个需要创建的巨大的结构。但是不要怕。其结构定义如下:struct msghdr { void *msg_name; socklen_t msg_namelen; struct iovec *msg_iov; size_t...
分类:
其他好文 时间:
2014-09-27 11:26:09
阅读次数:
345
/**
* TCP,使用非阻塞 connect
**/
#include "unp.h"
int
connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec)
{
int flags, n, error;
socklen_t len;
fd_set rset, wset;
struct timeval tval;
//1.调用 fcntl 设置套接字为非阻塞
flags = Fcntl(sockfd, ...
分类:
其他好文 时间:
2014-08-24 23:57:13
阅读次数:
464
/**
* UDP,协议无关,调用 getaddrinfo 和 udp_client
**/
#include "unp.h"
int
udp_client(const char *host, const char *serv, SA **saptr, socklen_t *lenp)
{
int sockfd, n;
struct addrinfo hints, *res, *ressave;
//1.调用 getaddrinfo
//协议地址族为 AF_UNSPEC ,套接字类型为...
分类:
其他好文 时间:
2014-08-24 23:57:03
阅读次数:
601
/**
* UDP 协议无关 调用 getaddrinfo 和 udp_server
**/
#include "unp.h"
#include
int
main(int argc, char **argv)
{
int sockfd;
ssize_t n;
char buff[MAXLINE];
time_t ticks;
socklen_t len;
struct sockaddr_storage cliaddr;
//1.利用 Udp_s...
分类:
其他好文 时间:
2014-08-24 23:56:33
阅读次数:
462
bind();把一个地址簇中的特定地址赋给socket,Eg:AF_INET,AF_INET6就是把一个ipv4或ipv4地址和端口号组合赋给socket;int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);addr:...
分类:
其他好文 时间:
2014-08-19 14:22:24
阅读次数:
203