社区
C语言
帖子详情
为什么sock<0
violetci
2001-02-06 01:31:00
sock=socket(AF_INET,SOCK_STREAM,0);
if (sock<0){
perror("error socket id:");
exit(1);
}
else {
printf(" %d",sock);
}
程序执行的时候,sock判断小于0,然后执行了perror(error socket id:);
...全文
136
2
打赏
收藏
为什么sock<0
sock=socket(AF_INET,SOCK_STREAM,0); if (sock<0){ perror("error socket id:"); exit(1); } else { printf(" %d",sock); } 程序执行的时候,sock判断小于0,然后执行了perror(error socket id:);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
violetci
2001-02-07
打赏
举报
回复
嗯,这点你说得很对
不过我的只要问题不是出在这里,主要是因为没有调用WSAStartup()
你能介绍一点关于sock编程上面的书么?
我看的书上面的例程都不正确
niki
2001-02-06
打赏
举报
回复
在UNIX中所有句柄包括套接口(socket)句柄,都是非负的短整数,而且一些应用程序把这一假设视为真理(如所说你的程序)。Windows Sockets句柄则没有这一限制,除了INVALID_SOCKET不是一个有效的套接口外,套接口可以取从0到INVALID_SOCKET-1之间的任意值。
而在winsocket中,
typedef unsigned int u_int;
typedef u_int SOCKET;
#define INVALID_SOCKET (SOCKET)(~0)
(/*ie. 0xffffffff*/)
所以你的程序在windows下不能正常运行,将 sock < 0 改为 sock == NVALID_SOCKET
则在windows/unix下均可正常运行。(unix下INVALID_SOCKET好象是-1)
sock
文件介绍--以mysql.
sock
为例
sock
.
sock
。
SOCK
_STREAM (TCP)、
SOCK
_DGRAM (UDP)、
SOCK
_RAW
SOCK
_STREAM (TCP)、
SOCK
_DGRAM (UDP) 工作在传输层,
SOCK
_RAW 工作在网络层 网络层:
SOCK
_RAW 可以处理ICMP、IGMP等网络报文、特殊的IPv4报文、可以通过IP_HDRINCL套接字选项由用户构造IP头 传输层TCP套接字的...
sock
et 中
SOCK
_STREAM 和
SOCK
_DGRAM的区别?
sock
_stream 是有保障的(即能保证数据正确传送到对方)面向连接的
SOCK
ET,多用于资料(如文件)传送。
sock
_dgram 是无保障的面向消息的
sock
et , 主要用于在网络上发广播信息。
SOCK
_STREAM是基于TCP的,数据传输比较...
sock
_raw和
sock
_packet
套接字
SOCK
_RAW
SOCK
_PACKET 实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(
SOCK
_STREAM)和数据包式套接字(
SOCK
_DGRAM)。而这些数据包都是由系统提供的协议栈实现...
TCP的request_
sock
与
sock
request_
sock
TCP服务端在接收到SYN报文时,调用conn_request回调处理,最终调用了tcp_conn_request函数,其分配一个request_
sock
(tcp_request_
sock
)结构体。request_
sock
之后用于TCP的三次握手,与正常的
sock
结构...
C语言
70,034
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章