中易网

布置在windows下的web项目布置到linux下 socket请求不能用什么情况

答案:1  悬赏:50  
解决时间 2021-02-27 01:19
布置在windows下的web项目布置到linux下 socket请求不能用什么情况
最佳答案
1)头文件
windows下winsock.h/winsock2.h
linux下sys/socket.h 错误处理:errno.h
2)初始化
windows下需要用WSAStartup
WSADATA wsaData;
err = WSAStartup(0x202,wsaData);
if ( err != 0 )
{
return 0;
}
else if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) //检测是否支持这个版本的socket
{
WSACleanup( );
return 0;
}
对应的退出清理用WSACleanup( );
linux下不需要
3)关闭socket
windows下closesocket()
linux下close()
4)socket类型
windows下SOCKET
linux下int
5)获取错误码
windows下WSAGetLastError()
linux下errno变量
extern int errno;
int geterror(){return errno;}
6)设置非阻塞
windows下ioctlsocket(server_socket,FIONBIO,ul); int ul = 1
linux下fcntl(server_socket,F_SETFL, O_NONBLOCK);

7)send函数最后一个参数
windows下一般设置为0
linux下必须是后几个参数用到的socket中,值最大的数(整型)加1 (另一种说法是设置为MSG_NOSIGNAL)

8)毫秒级时间获取
windows下GetTickCount()
linux下gettimeofday()
9)编译连接
windows下ws2_32.lib
linux下
连接是使用参数:-lstdc
运行时需要libstdc++.so.5,可在/usr/lib目录中创建一个链接。
10)Socket操作错误返回值
都为SOCKET_ERROR,他的值是-1
11)异常处理
windows下没有对send()的异常处理,最后一个参数无效,写0就可以了。
linux下当连接断开,还发数据的时候,不仅send()的返回值会有反映,而且还会像系统发送一个异常消息,如果不作处理,系统会出BrokePipe,程序会退出。为此,send()函数的最后一个参数可以设置MSG_NOSIGNAL,禁止send()函数向系统发送异常消息。
12)WSA宏
windows下WSA相关的操作
linux下WSA相关的操作在Linux不必要,直接去掉即可

13)多线程
多线程: (win)process.h --〉(linux)pthread.h
_beginthread --> pthread_create
_endthread --> pthread_exit
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
学土木工程专业的需要学习些什么软件呢?
洋话连篇教育培训地址有知道的么?有点事想过
做为财务管理者,怎样管理与自己
他跟我说这句话,是什么意思?
在有缘认识了一个女孩,聊的几天,她就说见面
谁和我有工作上的互动英文
我要追的女生,回我信息总是很客套
调整visio画布的时候,出现的虚线是怎么回事
欢乐家生活超市(望湖路店)地址在什么地方,想
穿越,北宋,封侯,赵贞,西夏,青塘 小说
中国学生在新西兰安全吗?
王俊凯怎么被星探发现的
民间担保贷款
围棋里wgs文件怎样打开
托盘山在什么地方啊,我要过去处理事情
推荐资讯
中国邮政储蓄银行沈阳市银山路支行在什么地方
喜马拉雅可以用电容麦声卡吗
科目三考试上了车还没考手机响了取消考试怎么
中国国内有哪些比较好的房产开发商?
请问为什么吸油烟机先往外吹一会风过一会才开
鲁家坳这个地址在什么地方,我要处理点事
魔兽世界打完ICC2号退团了,等我第二天再进,
有那些方法可以查询摩托车违章记录?被交警开
内地本科毕业读香港中文大学的全日制工商管理
求一个asp手机上传图片的源文件!
遂宁事业单位考试一般多少分能过线
怎么运鸡苗回老家?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?