在利用winsock制作网络通讯时要注意的几点问题:1.首先,要注意连接问题。
在ClientSocket.Disconnection事件中加入代码。
ClientSocket.active := false;这样当socket断开连接的时候,会自动去继续连接服务器。。2.在ClientSocket.onerror的事件中添加扑捉错误的代码。
最简单的方法就是加入语句
ErrorCode:= 0;
这样,即便socket出错,也不会迫使程序停止运转。我可以想到的处理方式有两种。
第一种,是用windows的消息队列
首先,做一个线程,是专门用来处理接收到client发送的消息。
然后,每当Socket接收到client的消息之后,向这个队列用postmessage或者sendmessage向线程发送消息。然后去处理。
第二种,是自己做一个队列。然后用排队的方式,将从socket接收的数据入对,线程对这个队列进行处理,当队列中有数据的时候,数据出队,进行处理。
不管采用那种做法,都是为了保证socket能够以最快的速度去接收client传来的数据。我自己认为第二种方法比较好控制一些