社区
通信技术
帖子详情
为什么sockfd=socket(AF_INET,SOCK_STREAM,0)总返回-1?
zl_2001
2003-04-04 10:32:42
采用VC编译,链接库Ws2_32.lib.
改为SOCK_DGRAM也不对!
...全文
1345
5
打赏
收藏
为什么sockfd=socket(AF_INET,SOCK_STREAM,0)总返回-1?
采用VC编译,链接库Ws2_32.lib. 改为SOCK_DGRAM也不对!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wbcp2000
2003-04-09
打赏
举报
回复
改成
sockfd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)
另外,在调用之前,初始化socket
WSADATA wsd;
int err;
err = WSAStartup(MAKEWORD(2,2),&wsd);
wbcp2000
2003-04-09
打赏
举报
回复
你可以调用WSAGetLastError看看报什么错误
在进行调试
zl_2001
2003-04-07
打赏
举报
回复
顶
zl_2001
2003-04-04
打赏
举报
回复
yes, you are right.
那再问一下:
我调了WSAStartup之后,发现sendto和recvfrom都返回错,您再看看。
memset((char*)&serv,0,sizeof(serv));
serv.sin_family=AF_INET;
serv.sin_addr.s_addr=inet_addr("192.168.1.63");
serv.sin_port=htons(21);
if(sendto(sockfd,buff,BUFFSIZE,0,(struct sockaddr *)&serv,sizeof(serv))!=BUFFSIZE)
printf("sendto error\n");
if((n=recvfrom(sockfd,buff,BUFFSIZE,0,(struct sockaddr *)NULL,(int *)NULL))<2)
printf("recvfrom error\n");
buff[n-2]=0;
printf("%s\n",buff);
smartcard
2003-04-04
打赏
举报
回复
用getLastError函数看看什么错,估计99%是因为你没有先调用WSAStartup函数。
记得给我分!!
sock
et
PF_
INET
AF
_
INET
区别
在写网络程序的时候,建立TCP
sock
et
:
sock
=
sock
et
(PF_
INET
,
SOCK
_
STREAM
, 0); 然后在绑定本地地址或连接远程地址时需要初始化
sock
addr_in结构,其中指定address family时一般设置为
AF
_
INET
,即使用IP。 相关头文件中的定义:
AF
= Address Family PF = Protocol Family
AF
_
INET
=PF_
INET
在w...
【python 学习笔记】深入解析 Python
Sock
et
创建:`
sock
et
.
sock
et
(
sock
et
.
AF
_
INET
,
sock
et
.
SOCK
_
STREAM
)`
始终使用常量# 推荐 ✅# 避免 ❌考虑未来兼容# 显式导入常量协议选择原则A[选择协议] --> B{需要可靠传输?B -->|是| C[TCP/
SOCK
_
STREAM
]B -->|否| D{需要低延迟?D -->|是| E[UDP/
SOCK
_DGRAM]D -->|否| F{需要网络层访问?F -->|是| G[原始套接字]终极口诀地址家族定协议,套接类型决传输常量使用保清晰,组合匹配要合规。
网络编程-
sock
et
通信(一)
sock
et
通信(一) 底层封装了TCP/IP协议簇,开发者只要会用
sock
et
即可调用底层协议功能。
sock
et
分为以下两种通信机制:
stream
(流):TCP,基于连接,有序可靠 datagram(数据包):UDP,不建立连接,不可靠,效率比较高 现在用UDP的场景越来越少了,目前实时音视频聊天会用UDP数据包传输。 下图是
sock
et
通信流程: 程序概要
sock
et
文件描述符
sock
fd =
sock
et
(
AF
_
INET
,
SOCK
_
STREAM
,0),
sock
et
()函数的
返回
值其本
Linux网络编程之
Sock
et
套接字
在网络编程中,我们经常会提到
sock
et
这个词,它的中文翻译为套接字,有的时候也叫做套接口。今天,我们来学习这个套接字
sock
et
网络编程
sendto()用来发送数据,由于udp时无连接的,每次发送数据都需要指定对端的地址(IP和端口)。此时其他客户端向服务器发起连接后,由于服务器阻塞了,无法执行accept()接受连接,也就是其他客户端发生的数据,服务器无法读取,服务器也就无法并发同时处理多个客户端。主线程(父进程)只负责监听客服端的连接,并使用accept()接受连接,不进行数据的处理。监听队列有两种,一个是存放未完成三次握手的连接,一种是存放已完成三次握手的连接。每处理一个连接,则accept()
返回
该连接对应的套接字描述符。
通信技术
4,386
社区成员
28,916
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章