如何往一个socket客户端发送字节数据
如题:发送的数据是30 30 86 类似的两字节数据,要发送到socket的客户端。 问题点数:0、回复次数:8Top
1 楼zlyanyan(qhjcbb)回复于 2003-06-04 14:51:16 得分 0
跟发送文本类似的,Top
2 楼SunRoll(三路)回复于 2003-06-04 19:03:50 得分 0
当ASCII码发Top
3 楼microjuz(天才弟弟……》说好了和xgto看流星雨)回复于 2003-06-04 19:05:28 得分 0
泡分,呵呵Top
4 楼microjuz(天才弟弟……》说好了和xgto看流星雨)回复于 2003-06-04 19:07:03 得分 0
ClientSocket.Socket.SendText('30 30 86 ');
这样可否??我猜的:)Top
5 楼CSDNBowlder(给点阳光就灿烂)回复于 2003-06-04 21:09:08 得分 0
建议用udp协议发送
tmpstr:='30 30 86'
Mystream.Write(tmpstr[1],lenght(tmpstr))
nmudp1.send(MySream)
客户端和服务器端,都可以接收
Top
6 楼asdf008(棒棒糖)回复于 2003-06-04 21:44:19 得分 0
直接用Indy面板里面的UDP好了,很简单。比如IdUDPClient1.Send(Chr(RandomRange(0,255))); 一句完成发送,事先把IP和Port都设置好Top
7 楼deanchang(鱼)回复于 2003-06-04 22:50:13 得分 0
转成char
用sendBuf()Top
8 楼selfboss(黃海)回复于 2003-06-05 12:46:36 得分 0
你先把這要傳送的數據進行打包﹐對方收到以后進行分解就OK了。
如﹕
clientsocket1.socket.sendtext('<%[30][30][86]%>');
收到后: var ss:string;
i,j,s1,s2,s3:integer;
ss := socket.ReceiveText;
while pos('<%',ss) > 0 do
begin
i := pos('<%',ss) ;
j := pos('%>',ss) ;
if (j>i) and (i>0) then
ss := copy(ss,i +2,lenght(ss) -j -1) ;
i := pos('[',ss) ;
j := pos(']',ss) ;
if (j>i) and (i>0) then
begin
s1 := strtoint(copy(ss,i +1,j -i -1);
ss := copy(ss,j +1,length(ss) -j) ;
end ;
if (j>i) and (i>0) then
begin
s2 := strtoint(copy(ss,i +1,j -i -1);
ss := copy(ss,j +1,length(ss) -j) ;
end ;
if (j>i) and (i>0) then
begin
s3 := strtoint(copy(ss,i +1,j -i -1);
ss := copy(ss,j +1,length(ss) -j) ;
end ;
end ;
最后取得的數是﹕30, 30, 68Top




