Delphi TServerSocket/ClientSocket 发送接收消息问题请教

服务器端通过WriteLn方法发送字符串,客户端通过ReadLn接收消息的时候弹出了异常信息:class
EIdReadLnMaxLineLengthExceeded WITH message 'max line length exceeded'
好像是接收的信息超过了大小

请问大家有什么好办法处理吗?谢谢

Procedure TForm1.BitBtn1Click(Sender: TObject);
var
I: Integer;
Begin
for I := 0 to ServerSocket1.Socket.ActiveConnections -1 Do
Begin
//if ServerSocket1.Socket.Connections[I].SocketHandle = XXX then
ServerSocket1.Socket.Connections[I].SendText('amsg'); //服务端发送
End;
End;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.ReceiveText; //客户端接收
end;
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-01
一次传送的东西太多了~

定义一个缓冲区<多次传送>
var
Buf: Array[1..2048] of char;

Delphi TServerSocket\/ClientSocket 发送接收消息问题请教
Begin \/\/if ServerSocket1.Socket.Connections[I].SocketHandle = XXX then ServerSocket1.Socket.Connections[I].SendText('amsg'); \/\/服务端发送 End;End;procedure TForm1.ClientSocket1Read(Sender: TObject;Socket: TCustomWinSocket);begin Socket.ReceiveText; \/\/客户端接收 end;...

delphi 7 中的tcpClient如何接收服务器发送的数据
Socket: TCustomWinSocket);begin memo1.lines.add(socket.ReceiveText);end;5、Client端:利用ClientSocket1.Socket.SendText('...')发送文本。在OnRead事件中接收Server端发送来的信息:procedure TForm1.ClientSocket1Read(Sender: TObject;Socket: TCustomWinSocket);begin memo1.lines.add(socket.R...

Delphi IDTcpServer 如何实现向指定的Client 发送数据
1.建立两个工程Server及Client分别放TServerSocket及TClientSocket控件,Demo,Edit控件等。2.设置TServerSocket name为 SS, ServerType为stNonBlocking,TClientSocket name为cs,ClientType为ctNonBlocking表示异步读写信息。注意ClientType和ServerType要相一致.若为ctBlocking则表示同步读写信息。3.Socket传送文件的顺...

delphi serversocket与clientsocket通讯的问题?
ServerSocket.Close;StatusBar.Panels[0].Text :='服务器套接字连接已经关闭,无法接受客户端的连接请求.';end;\/\/从客户端读取信息 procedure TfrmServerMain.ServerSocketClientRead(Sender: TObject;Socket: TCustomWinSocket);var i:integer;begin \/\/将从客户端读取的信息添加到Memo1中 Memo1.Lines...

那位大哥 给个delphi的SOCKET 程序 谢谢啦
笔者在工作中遇到对局域网中各工作站与服务器之间进行Socket通信的问题。现在将本人总结出来的TServerSocket和TClientSocket两个组件的基本用法写出来,希望与您分享。 ClientSocket组件为客户端组件。它是通信的请求方,也就是说,它是主动地与服务器端建立连接。 ServerSocket组件为服务器端组件。它是通信的响应方,也就...

Delphi中文件传输有几句赋值语句的困惑
Delphi的Socket文件传输也曾经让我困惑了一阵子,后来经过深入研究,终于彻底明白了其中奥秘。 这些相关问题,不是三言两语能说清楚的。我这里可以告诉你几条:1、ServerSocket,只要是使用默认的“非阻塞”方式,则其内部是自动采用多线程方式工作的。2、Socket.Data属性:它是一个指针,可以指向任何类型的...

C++builder ServerSocket和ClientSocket控件的使用问题
当你向对方发数据时触发。(非阻塞不重点)OnGetSocket Occurs when the server socket needs to create a new TServerClientWinSocket object to form the connection to a client socket.当SERVER SOCKET创建一个与CLIENT连接的新TServer...

Delphi idtcpserver\/client 用法是什么?
一、Client用Socket来喊话,它的Write方法很有意思,可以Write多种类型的数据,当然,都是定长或可以判断出长度的类型,而服务器的Execute事件就能用AContext.Connection.IOHandler的各种Read方法来读出相应的内容。二、指令传输.这是在服务器主动的方式下进行的一次性指令传输.注意,与Client对Server交流不同,服务...

delphi 7中tcpserver 和 tcpclient的运用
procedure TForm1.TcpServer1Accept(Sender: TObject;里面也是死循环来处理消息。直到你终止。while ClientSocket.connected do tcpclient1 也是类似的,用单独的线程死循环来处理接收的消息。 只有发送消息就无所谓

Delphi下的socket(如TServerSocket)为什么没有超时属性,
msgwaitforsingleobject,或用winsock.select函数也可。如果是block方式一般用线程方式来操作,使用waitfor来确定是否超时,或有数据来。。。通过setsockopt可以设置socket recv buffer sizesetsockopt(clientsocket1.socket.sockethandle,SOL_SOCKET,SO_recv{这参数叫接收buffer,查一下help},pchar(&BufSize),SizeOf...

相似回答