当前位置: 技术问答>linux和unix
socket 编程问题!!!
来源: 互联网 发布时间:2016-05-29
本文导语: 我是在unix下用C语言编程遇到的问题:从客户端发送消息到服务器端,根据消息判断来执行对informix的操作,有两个问题: 1,我用1,2,3,4...来当做消息来标记要执行的动作,那传递的时候,是把1,2,3,4...当做一个字符来传递...
我是在unix下用C语言编程遇到的问题:从客户端发送消息到服务器端,根据消息判断来执行对informix的操作,有两个问题:
1,我用1,2,3,4...来当做消息来标记要执行的动作,那传递的时候,是把1,2,3,4...当做一个字符来传递还是当做一个字符串来传递?我用字符和字符串传递总是出错,找不出原因。大家认为是怎么传递好呢?写出具体的代码;若大家知道通用的消息是用什么传递的,请告诉我。我是用send()函数来发送消息的。
2,若在服务端执行完查询语句,要把一条记录返回给客户端,该怎么发送呢?是把每一项定义一个宿主变量,一个一个传送,还是定义一个结构体变量?分别说明如何返回呢?若能给出代码更好!!
若大家能给出解答,万分感激!
1,我用1,2,3,4...来当做消息来标记要执行的动作,那传递的时候,是把1,2,3,4...当做一个字符来传递还是当做一个字符串来传递?我用字符和字符串传递总是出错,找不出原因。大家认为是怎么传递好呢?写出具体的代码;若大家知道通用的消息是用什么传递的,请告诉我。我是用send()函数来发送消息的。
2,若在服务端执行完查询语句,要把一条记录返回给客户端,该怎么发送呢?是把每一项定义一个宿主变量,一个一个传送,还是定义一个结构体变量?分别说明如何返回呢?若能给出代码更好!!
若大家能给出解答,万分感激!
|
1."...我用字符和字符串传递总是出错,找不出原因。..."
》怎么出错的?错误信息是什么?可以把你的出错的代码贴出来,这样好分析错误。
2."...是把每一项定义一个宿主变量,一个一个传送,还是定义一个结构体变量?..."
》两种方式都可以,不过用结构体方式涉及到字节对齐的问题,可能兼容不太好。
建议你阅读《UNIX网络编程》这本书,Richard Stevens写的。
》怎么出错的?错误信息是什么?可以把你的出错的代码贴出来,这样好分析错误。
2."...是把每一项定义一个宿主变量,一个一个传送,还是定义一个结构体变量?..."
》两种方式都可以,不过用结构体方式涉及到字节对齐的问题,可能兼容不太好。
建议你阅读《UNIX网络编程》这本书,Richard Stevens写的。
|
1.两个都没有问题,如果一个字符就能容纳,就用字符就行了,少传点内容。 还有你也可以试试用short之类的整形来传送,不过注意主机字节序和网络字节序之间的转化。
2.一般用结构吧,结构中的成员可以都定义成字符或字符串类型,就不存在字节对齐问题。
2.一般用结构吧,结构中的成员可以都定义成字符或字符串类型,就不存在字节对齐问题。
|
1,我用1,2,3,4...来当做消息来标记要执行的动作,那传递的时候,是把1,2,3,4...当做一个字符来传递还是当做一个字符串来传递?我用字符和字符串传递总是出错,找不出原因。大家认为是怎么传递好呢?写出具体的代码;若大家知道通用的消息是用什么传递的,请告诉我。我是用send()函数来发送消息的。
2,若在服务端执行完查询语句,要把一条记录返回给客户端,该怎么发送呢?是把每一项定义一个宿主变量,一个一个传送,还是定义一个结构体变量?分别说明如何返回呢?若能给出代码更好!!
若大家能给出解答,万分感激!
1.你传一个1,人家接收的就只有一个字符,是数据流,肯定不是这个原因.
2.你定义一个固定的格式,把数据流回传就行了.
2,若在服务端执行完查询语句,要把一条记录返回给客户端,该怎么发送呢?是把每一项定义一个宿主变量,一个一个传送,还是定义一个结构体变量?分别说明如何返回呢?若能给出代码更好!!
若大家能给出解答,万分感激!
1.你传一个1,人家接收的就只有一个字符,是数据流,肯定不是这个原因.
2.你定义一个固定的格式,把数据流回传就行了.
|
用16禁止的数据传,一般的应用层协议都是这样的,这样可以利用字节的每一个位