求给个windows 下原始套接字的示例程序,要求使用C语言,不使用MFC。
答案:2 悬赏:80 手机版
解决时间 2021-11-21 15:12
- 提问者网友:相思似海深
- 2021-11-21 11:54
求给个windows 下原始套接字的示例程序,要求使用C语言,不使用MFC。
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-11-21 12:31
#include
void main(){
WORD wVersionRequested;
WSADATA wsaData;
WSAStartup( wVersionRequested, &wsaData );
//创建套接字,SOCK_DGRAM套接字类型,0推荐协议
SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrSrv;
//INADDR_ANY允许套接字向任何分配给本机器的IP地址发送和接收数据,可能有多个网卡
//htonl, 将u_long 从主机字节序转换为网络字节序
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;//指定地址族
addrSrv.sin_port = htons(6002);//端口号,htons,将u_short从主机字节序转换为网络字节序
//绑定
bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
while(1){
//等待接收数据
recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient, &len);
.......................
}追问大侠,这是UDP啊,我有的是SOCK_RAW 原始套接字。。。
void main(){
WORD wVersionRequested;
WSADATA wsaData;
WSAStartup( wVersionRequested, &wsaData );
//创建套接字,SOCK_DGRAM套接字类型,0推荐协议
SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrSrv;
//INADDR_ANY允许套接字向任何分配给本机器的IP地址发送和接收数据,可能有多个网卡
//htonl, 将u_long 从主机字节序转换为网络字节序
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;//指定地址族
addrSrv.sin_port = htons(6002);//端口号,htons,将u_short从主机字节序转换为网络字节序
//绑定
bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
while(1){
//等待接收数据
recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient, &len);
.......................
}追问大侠,这是UDP啊,我有的是SOCK_RAW 原始套接字。。。
全部回答
- 1楼网友:轻雾山林
- 2021-11-21 14:04
。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯