Linux进行网络开发,和Windows下的有什么区别?

cobra_chen 2010-11-23 10:23:29
在Windows下做过socket编程,现在要在Linux上实现。
发现把原来的Code放到Linux下,编译出了好多错误。
用的是Berkeley的套接字模型。
我在VS2005下编译通过的,可是Linux下的GCC就不行了。
咋改呢?
谁能给个Linux下Socket的简单的Source Code?
...全文
230 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cobra_chen 2010-11-25
  • 打赏
  • 举报
回复
int iMode = 1;
octlsocket(connect_socket,FIONBIO, &iMode);

Linux上有什么函数可以代替上面那个函数?
还有WSAGetLastError()的替代函数是什么?
bcj00000 2010-11-23
  • 打赏
  • 举报
回复
mingw 搞定
gules 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cobra_chen 的回复:]
可以说下有哪些不一样么?
或者给点资料看看。
或者给个Source Code看看,
关键不知道怎么改。

还有怎么做Linux下的Dll。
听说Dll在Linux上so。这个怎么做呢?
和Windows上的一样吗?
[/Quote]

LINUX下用 -shared -fPIC 编译选项来生成.so动态库。
jhzlf 2010-11-23
  • 打赏
  • 举报
回复
API都不一样了
先看看Linux网络编程吧
我这边做几个移植通常大动手术的地方都是网络模块。。。


编译.so文件在makefile里面写好就行了
给你个例子

LDFLAGS=-shared -Wl,-soname,$@

OBJS=Parser.o (这里要有这个名字的CPP文件)
DLLS=libDeviceManager.so

all: $(DLLS)

%.o: %.cpp %.h
$(CXX) $(CXXFLAGS) -c -o $@ $<

$(DLLS):$(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBDIR)
cobra_chen 2010-11-23
  • 打赏
  • 举报
回复
可以说下有哪些不一样么?
或者给点资料看看。
或者给个Source Code看看,
关键不知道怎么改。

还有怎么做Linux下的Dll。
听说Dll在Linux上so。这个怎么做呢?
和Windows上的一样吗?
luciferisnotsatan 2010-11-23
  • 打赏
  • 举报
回复
api什么的都不一样了,直接拿去编当然编不过
gules 2010-11-23
  • 打赏
  • 举报
回复
主要区别有:相关数据类型的不同(如socket)、API的不同、并发模式不同等。
liutengfeigo 2010-11-23
  • 打赏
  • 举报
回复
必须得动大手术吧。
积木 2010-11-23
  • 打赏
  • 举报
回复
头文件都不一样 ,你以为这些东西能跨平台么?呵呵。
不过linux下面的模型也是Barkeley的,这是没有区别的。
最好的情况是简单修改函数接口和头文件就能编译运行。差的情况,那就是要动大手术了。
后面的情况居多。毕竟windows的编程模式和linux的有很大不同。
ouyh12345 2010-11-23
  • 打赏
  • 举报
回复
改动应该不大

发现把原来的Code放到Linux下,编译出了好多错误。
改吧
cobra_chen 2010-11-23
  • 打赏
  • 举报
回复
发现Linux上的man帮助看着很不舒服,以前看的都是MSDN。
有其他的Linux上的帮助文档么?

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧