我要编写一个socket客户端,与我公司的服务器互连,整个消息结构体如下:
Command Length 4 longInt 整个消息的长度
Command ID 4 longint 命令
Sequence 4 longint 序列号,保证唯一性
username 16 char 用户名
passwd 16 char 密码我用了ClientSocket,怎样将这些内容(不同类型的数据)写入socket?
网络字节序应该怎么做?望高手指点,最好有例子. 分数可以另外加.
如果哪位高手做过这样的程序,请多多帮忙.
Command Length 4 longInt 整个消息的长度
Command ID 4 longint 命令
Sequence 4 longint 序列号,保证唯一性
username 16 char 用户名
passwd 16 char 密码我用了ClientSocket,怎样将这些内容(不同类型的数据)写入socket?
网络字节序应该怎么做?望高手指点,最好有例子. 分数可以另外加.
如果哪位高手做过这样的程序,请多多帮忙.
还有服务器端程序是原有的我只能按消息结构发
注意:Pascal对高字节与低字节的存放顺序与C的存放顺序是不一样的。
在写入的时候进行网络字节序进行转换,然后调用
ClientSocket1.Socket.SendStream();将数据发出.大概的方法是这样
但我写出的总是不对.基础太差了.还望高手能够将上述过程写出来.
Command_Length : longInt ;// 整个消息的长度
Command_ID : longint ;// 命令
Sequence : longint ;// 序列号,保证唯一性
username : Array[0..15] of char ;// 用户名
passwd : Array[0..15] of char;// 密码
end;procedure SendMsg(AMsg : TSMsg);
var
vS : TMemoryStream;
begin
vS := TMemoryStream.Create;
try
vS.Write(AMsg, Sizeof(AMsg)); //
ClientSocket1.SendStream(vS);
finally
vS.Free;
end;
end;