实战linux socket编程,windows的socket编程

  实战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原则上应该是一样的,只是不同系统的运行机器有些不同。

实战linux socket编程,windows的socket编程