实战linux socket编程,windows的socket编程
Windows Socket和Linux Socket编程有什么区别?(额外100分)
提问者:洛夫斯基回答:2浏览量:5537奖励点:900
评论(0)
能不能尽量详细一点?谢谢你也可以提供一个详细的网址。
如果你有满意的答案,请及时采纳,不要让回答者失望!
回答
共2篇文章
最佳答案
受访者:rainyheart(rainyheart)级别:战地军衔-上尉(2008-01-15 22:15:56)
Socket中从windows编程到Linux的代码移植问题
1.一些常用功能的移植
http://www.vckbase.com/document/viewdoc/?id=1586
2.网络-转载修改(待整理)
socket程序从windows移植到linux需要注意什么
1)头文件
windows下的Winsock.h/winsock2.h
linux下的Sys/socket.h
错误处理:错误号h
2)初始化
windows下需要WSAStartup。
linux下不需要
3)关闭插座
Windows closesocket(.)
关闭(.)在linux下
4)类型
Windows套接字
linux下的Int
例如,我使用的一些宏:
#ifdef WIN32
typedef int socklen _ t;
typedef int ssize _ t;
#endif
#ifdef __LINUX__
typedef int套接字;
typedef无符号字符字节;
typedef无符号长DWORD
#定义假0
#define套接字错误(-1)
#endif
5)获取错误代码
windows getlasterror()/WSAGetLastError()
linux下的Errno变量
6)设置非阻塞
Windows ioctlsocket()
在linux下fcntl() fcntl.h
7)发送函数的最后一个参数
Windows通常设置为0。
在linux下,最好设置为MSG_NOSIGNAL。如果未设置,可能会导致程序在发送错误后退出。
8)毫秒时间采集
windows下的GetTickCount()
linux下的Gettimeofday()
3.多线程
多线程:(Win)process . h-->(Linux)pthread . h
_beginthread - pthread_create
_endthread - pthread_exit
提问者对答案的评价:
评论(0)
回答者:birdmylover(birdmylover)等级:江湖英雄-风暴使者(2008-01-15 22:17:40)
这个问题好大。
SOCKET原则上应该是一样的,只是不同系统的运行机器有些不同。