免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4892 | 回复: 7
打印 上一主题 下一主题

C socket Server 与 Java socket client 问题请教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-09 23:20 |只看该作者 |倒序浏览
各位大侠,小弟最近有一件事,望各位大侠指教!

我的socket服务器程序是用Unix C写的的,而我要在windows 系统上用java编写socket客户端,请问要注意什么问题。因为目前我的情况是socket连接能够建立,但是数据发送过去后好像有问题,是不是java这边的数据需要倒过来发送,因为Unix C那边需要倒过来发送。我现在找原因。Any help is appreciated ! Thanks in advance.

论坛徽章:
0
2 [报告]
发表于 2004-02-09 23:55 |只看该作者

C socket Server 与 Java socket client 问题请教!

我觉得你要注意Unicode的问题,毕竟java上的int都是双字节的!我们以前写通信程序的时候遇到过这个问题。搞得痛苦坏了

论坛徽章:
0
3 [报告]
发表于 2004-02-10 10:41 |只看该作者

C socket Server 与 Java socket client 问题请教!

还要注意类型长度、字节序、结构成员对齐的问题。
避免使用依赖于硬件、系统和编译器的类型。比如int型,谁能告诉我int型的长度是多少?
不同处理器平台的机器其字节顺序不一样。如果用的都是IA32的就不会有这种问题。
在一个就是结构成员对齐的问题,即使你的系统都在VC++下开发。如果结构体对齐方式不一样。那么也会出问题。
再有就是楼上兄弟说的UNICODE的问题。实际上也是类型长度的问题。

论坛徽章:
0
4 [报告]
发表于 2004-02-10 11:16 |只看该作者

C socket Server 与 Java socket client 问题请教!

因为目前我的情况是socket连接能够建立,但是数据发送过去后好像有问题,


说明白了,什么问题啊.

论坛徽章:
0
5 [报告]
发表于 2004-02-10 13:51 |只看该作者

C socket Server 与 Java socket client 问题请教!

了解一下java.nio.*
他可以解决对齐,字节顺序之类的问题

论坛徽章:
0
6 [报告]
发表于 2004-02-10 17:04 |只看该作者

C socket Server 与 Java socket client 问题请教!

将整形、长整形、浮点型转换成网络字符再传。要不就用字符串

论坛徽章:
0
7 [报告]
发表于 2004-02-11 11:34 |只看该作者

C socket Server 与 Java socket client 问题请教!

主要是字节序的问题
记住:
1、不要传浮点数,由于不同机器上浮点表示方法不同,所以传过去之后很可能出问题。一般将浮点转换成字符串或者放大若干倍成为整数后传递
2、传递大于一个字节的数时,一定要进行字节序转换,比如你从WINDOWS传一个WORD出来,则一定要首先用htons()函数转换,对于DWORD则为htonl()函数
3、字符串可以安全传递

论坛徽章:
0
8 [报告]
发表于 2004-02-11 11:44 |只看该作者

C socket Server 与 Java socket client 问题请教!

另外,如果你传递的是结构体,那么一定要在定义结构体时,用预编译宏设置对齐方式为1byte对齐(INTEL处理器默认一般为8字节对齐),否则接收时会错位
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP