大家帮我看看关于ServerSocket,以及Indy9控件的问题
小弟做想用ServerSocket控件实现一个小功能(服务器的连接数我设置为10),就是当客户机连接上以后,我判断客户机发送过来的数据(一个结构体),如果属于自己的数据包,服务器就再打包一个数据包传给客户端。
小弟对ServerSocket不熟悉,我看好些例子都是服务器接受数据时在onClientRead事件里写入:Memo->Lines->Add(Socket->ReceiveText()).如果我要接收数据包的话,是否就应该Socket->ReceiveBuf(&nData,sizeof(NetData));(其中nData为我定义的一个结构体)。 这样写如果多个客户端进行连接,数据会不会发送混乱。还是应该在服务器端用线程进行数据检测及发送?(见笑了) 哪个朋友那里有关于该控件收发数据包的例子能给我传一份吗?小弟万分感谢 呵呵!
还有一个小问题,小弟用Indy9的时候,比如:
AnsiString ClientPort = IntToStr(AThread->Connection->Socket->Binding->PeerPort);
编译的时候,系统老提示:E2316 'Socket' is not a member of 'TIdTCPServerConnection'。 放了一个TIdTcpServer控件上去,在Properties里明明有一个ListenQueue属性,但是->的时候却出不来,不知道怎么回事。还希望大家不吝赐教。
plyat@163.com
小弟对ServerSocket不熟悉,我看好些例子都是服务器接受数据时在onClientRead事件里写入:Memo->Lines->Add(Socket->ReceiveText()).如果我要接收数据包的话,是否就应该Socket->ReceiveBuf(&nData,sizeof(NetData));(其中nData为我定义的一个结构体)。 这样写如果多个客户端进行连接,数据会不会发送混乱。还是应该在服务器端用线程进行数据检测及发送?(见笑了) 哪个朋友那里有关于该控件收发数据包的例子能给我传一份吗?小弟万分感谢 呵呵!
还有一个小问题,小弟用Indy9的时候,比如:
AnsiString ClientPort = IntToStr(AThread->Connection->Socket->Binding->PeerPort);
编译的时候,系统老提示:E2316 'Socket' is not a member of 'TIdTCPServerConnection'。 放了一个TIdTcpServer控件上去,在Properties里明明有一个ListenQueue属性,但是->的时候却出不来,不知道怎么回事。还希望大家不吝赐教。
plyat@163.com
...全文


网络及通讯开发
