自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 linux下多线程实现服务端

并发服务端有多线程的和多进程的,今天来看一下多线程的。线程编程可能会麻烦一点,其中涉及到一些同步,死锁问题,但是也有其优点。并发服务端用的多的还是多进程。服务端:#include#include#include#include#include#include#include#include#include#includevoid *server_handle(voi

2017-12-28 16:03:00 9880 1

原创 windows下带超时的telnet探测IP和端口

玩树莓派由于没有屏幕,IP可能会跳,这时就不知道自己的树莓派是哪个IP了,下面可以用这个程序去探测自己树莓派的IP。其主要思想是:非阻塞的带超时的connect函数。#include #include #pragma comment(lib, "ws2_32.lib") int telnet_test_tcp(char *ip,int port,int timeout

2017-12-21 09:07:45 3039 3

原创 getservbyname和getservbyport

getservbyname函数和getservbyport函数其实也挺简单的。来看看百度百科是怎么描述他们的。getservbyname()返回与给定服务名对应的包含名字和服务号信息的servent结构指针;getservbyport()函数返回对应于给定端口号和协议名的相关服务信息,再来看看servent结构体。struct servent {char * s_name;char *

2017-12-14 19:25:36 1873 2

原创 UDP调用connect函数

UDP是无连接的,在发送数据时需要指定对端的IP地址和端口,每次发送数据需要重新连接,而且异步错误不会返回到UDP套接字。这些在UDP调用connect函数之后都发生了改变。代码如下:服务端:#include #include #include #include #include #include #include #include #include #include

2017-12-12 21:09:40 10029 3

原创 sendto成功返回

sendto用于UDP发送数据,send用于TCP发送数据.我们知道TCP中的send成功返回表示应用进程已成功将数据写入发送缓冲区,不表示数据已成功到达对端。而对于sendto成功返回,也只是表明接口输出队列中具有存放所形成IP数据包的空间,UDP是没有发送缓冲区的。来看一段代码:#include #include #include #include #include #inclu

2017-12-12 14:21:49 20168 3

原创 套接字选项SO_LINGER

在说明套接字选项SO_LINGER之前,我们来先看一个问题。如果发送缓冲区中还有数据没有发送到对方协议栈,此时close发送端的socket会发生什么,下面代码给出答案。服务端:#include #include #include #include #include #include #include #include #include #include #includ

2017-12-11 20:07:29 11196 2

原创 套接字选项SO_KEEPALIVE

套接字选项SO_KEEPALIVE是保活套接字,它会在规定的时间内给对端发送探测分节,用tcpdump抓包可以看到。这个规定的时间就是net.ipv4.tcp_keepalive_time,在系统中可以动态的设置它,它的默认值是7200s。SO_KEEPLIVE选项由setsockopt函数进行设置。服务端:#include #include #include #include #

2017-12-08 14:44:58 11009 4

原创 accept函数与TCP三次握手

accept函数和TCP三次握手有没有关系?有什么关系?一段代码让你从此不在疑惑。服务端:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2017-12-06 15:34:39 15499 2

原创 accept获取对端IP地址,getsockname获取本端IP地址

getpeername函数用于获取与某个套接字关联的外地地址,accept函数在接收连接的时候也会获取对端的地址。getsockname用于获取本端的地址。看代码。服务端:#include #include #include #include #include #include #include #include #include #include #include

2017-12-06 15:17:02 6385 3

原创 gethostbyname函数

gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构的指针,它是协议相关的,只能用于IPv4。getaddrinfo也有类似功能,但是它是协议相关的,先看看hostent结构体。struct hostent{ char *h_name; //主机名 char **h_aliases; //主机别名(指向到虚拟主机的

2017-12-01 16:57:03 11265 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除