比如Delphi发“123abc”转成ASCII就是{49,50,51,97,98,99},但是C#服务端收到的是
{140,39,213,0,44,246},而且我发现我换了其他的6个字符,收到的还是
{140,39,213,0,44,246},郁闷啊~主要代码:
C#(C#2.0)服务器端:
Socket client=newsock.Accept();//并返回一个新的socket,用于与客户端之间的通信
int recv;//用于表示客户端发送的信息长度
while(true)
{//用死循环来不断的从客户端获取信息
data=new byte[1024];
//data = new byte[] { };
recv=client.Receive(data);
Console.WriteLine("recv="+recv);
if (recv==0)//当信息长度为0,说明客户端连接断开
break;
this.lbox_Msg.Items.Add(Encoding.ASCII.GetString(data));
break;
} Delphi(Delphi7)客户端: _str := Trim(Self.Edit1.Text);
SetLength(_buffer,Length(_str)); // _buffer是array of Byte
CopyMemory(_buffer,PChar(_str),Length(_str));
_int := Length(_buffer);
send(_clientSocket,_buffer,_int,0);哥几个帮忙分析一下,需要完整代码我再贴~
{140,39,213,0,44,246},而且我发现我换了其他的6个字符,收到的还是
{140,39,213,0,44,246},郁闷啊~主要代码:
C#(C#2.0)服务器端:
Socket client=newsock.Accept();//并返回一个新的socket,用于与客户端之间的通信
int recv;//用于表示客户端发送的信息长度
while(true)
{//用死循环来不断的从客户端获取信息
data=new byte[1024];
//data = new byte[] { };
recv=client.Receive(data);
Console.WriteLine("recv="+recv);
if (recv==0)//当信息长度为0,说明客户端连接断开
break;
this.lbox_Msg.Items.Add(Encoding.ASCII.GetString(data));
break;
} Delphi(Delphi7)客户端: _str := Trim(Self.Edit1.Text);
SetLength(_buffer,Length(_str)); // _buffer是array of Byte
CopyMemory(_buffer,PChar(_str),Length(_str));
_int := Length(_buffer);
send(_clientSocket,_buffer,_int,0);哥几个帮忙分析一下,需要完整代码我再贴~
解决方案 »
- Treeview的組件使用問題,請各位大大幫忙解決..
- 调用外部exe程序的问题。
- 小弟在DELPHI下写了个DLL,但用VB的程序调用报错,详情见内。
- 关于clientsocket的问题!!!
- 恢复 Sql Server 出现如下错误“因为数据库正在使用,所以未能获得对的排它控制权”
- 好文章大家重温,(如何获得sql当前所有的服务器名),现在怎么才能举一反三呢?
- XPMenu控件在D5里死都装不上,而在D6里却能正常使用,怎么回事啊?我要疯了。
- delphi中如何使自已编的程序用Alt+F4和右上脚的X都不能关掉,只能结束任务?
- 我应该怎么做?
- 我用Tqrshape拼了一张报表,但往上面放dbtext时,总处于下面看不到,应该如何设,使dbtext处在上层?
- parambynmae怎么使用
- cxgrid如何实现带有统计信息的分组统计?50分现场给分。
看看工具显示收到的是什么感觉代码不对或c#收的不是delphi发的
看是客户端发送的不正确还是服务端接收的不正确CopyMemory(_buffer,PChar(_str),Length(_str));
把这一句改成
CopyMemory(_buffer[0],PChar(_str),Length(_str));
试试是否可行
CopyMemory(@_buffer[0],PChar(_str),Length(_str));
不过还是不行..
还是接收的时候处理有问题
捕获到的数据包都是localhost和remotehost不一样的,我的用法不对?我就打开smsniff以后,直接
点那个三角开始运行了。