2019/04/21
转载自
https://blog.csdn.net/qq_26399665/article/details/52859146
//创建原始套接字
m_s=socket(AF_INET,SOCK_RAW,IPPROTO_IP);
原因:SOCK_RAW要
管理员权限
解决方法1:用管理员权限启动你使用的编译器, 重新编译运行。
解决方法2:
http://jingyan.baidu.com/article/90808022a46db9fd90c80f6d.html
2019/04/21转载自https://blog.csdn.net/qq_26399665/article/details/52859146//创建原始套接字m_s=socket(AF_INET,SOCK_RAW,IPPROTO_IP);原因:SOCK_RAW要管理员权限解决方法1:用管理员权限启动你使用的编译器, 重新编译运行。解决方法2:http://jingyan.b...
socket
s(
套接字
)编程有三种,流式
套接字
(SOCK_STREAM),数据报
套接字
(SOCK_DGRAM),
原始套接字
(SOCK_RAW);前两种较常用。基于TCP的
socket
编程是采用的流式
套接字
。
(1)SOCK_STREAM表示面向连接的
该代码是拷贝网上的案例代码,但是笔者在运行时发现,在accept接收一次连接之后,无法堵塞,不断进入死循环,且接收不到任何客户端发送的
socket
连接。
后查阅资料,在accept()后面加入以下代码发现错误信息:10093
printf("%d",WSAGetLastError());
10093的错误,应用程序没有调用 WSAStartup,或者 WSAStartup
失败
。
问题描述:Failed to create UDP
socket
:10093!Close and restart app
✨ ⭐️ 🌟 💫我们将TCP服务器封装成一个类,当我们定义出一个服务器对象后需要马上对服务器进行初始化,而初始化TCP服务器要做的第一件事就是
创建
套接字
。TCP服务器在调用
socket
函数
创建
套接字
时:如果
创建
套接字
后获得的文件描述符是小于0的,说明
套接字
创建
失败
,此时也就没必要进行后续操作了,直接终止程序即可。
说明一下:
套接字
创建
完毕后我们实际只是在系统层面上打开了一个文件,该文件还没有与网络关联起来,因此
创建
完
套接字
后我们还需要调用bind函数进行绑定操作。绑定的步骤如下:由于TCP服务器初始化时
#define IPPROTO_IP 0 /* dummy for IP */
#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
#define I
使用
原始套接字
发送自定义IP包
这里介绍
Windows
Socket
s的一些关于
原始套接字
(Raw
Socket
)的编程。同Winsock1相比,最明显的就是支持了Raw
Socket
套接字
类型,通过
原始套接字
,我们可以更加自如地控制
Windows
下的多种协议,而且能够对网络底层的传输机制进行控制。
1、
创建
一个
原始套接字
,并设置IP头选项。
SOCKET
sock;
sock =