利用ServerSocket和ClientSocket实现简单通讯

开始这前,在你的窗口中放入ServerSocket和ClientSocket控件。


ServerSocket的控件属性

threadcachsize:创建服务器线程的最大数目。

port:确定服务器的监视端口。

service:客户通过此属性来识别服务器端口。

ClientSocket的控件属性

Socket:此属性参数是应用程序之间通信的端点。

Address:此属性参数为字符串类型,客户端确定服务器端的IP地址。 Host:服务器端的主机名称。

Post:服务器端的监视端口。

Servce:用来识别服务器端口。 

Active:确定Socket是否可用(true表示可用)。 

ClientType:指定客户机采用哪一种方式(异步/同步)来通信。

ServerSocket的事件 

onclientconnect:客户与服务器连接且服务器接收申请后,产生此事件。 onclientdisconnect:当和服务器连接的某一个客户机关闭连接后产生此事件。 

onGetSocket:一个服务器可以接收多个客户Socket的连接申请。 onGetThread:当ClientType属性值设为StrThreadBlocking时,服务器会产生一个单独的线程来与客户的连接。 

onAccept:服务器接收客户的连接申请后,产生此事件。 

onClientRead:客户机发送数据到服务器时产生的事件。

ClentSocket事件

onConnect:当客户端与服务器端连接上后,产生此事件。 

onConnecing:当客户端与服务器端进行连接操作时,产生此事件。 onDisconnect:当客户端关闭操作后产生此事件。 

onError:在客户与服务器在建立和通信过程中,如果产生错误时,产生此事件。 

onLookup:当客户在计算机网络中寻找服务器时,产生此事件。 

onRead:数据到达时产生此事件。 


1. 建立连接 


服务器端:

ServerSocket.Port:=9999 //你想要设置的监听端口

ServerSocket.open;//开始监听


服务器端至此一直在监听9999端口,若客户端有连接请求,则OnAccept事件被激活。procedure TForm1.ServerSocketAccept(Sender: TObject;Socket: TCustomWinSocket);

begin

//连接被接受时的代码。

end;


客户端:


ClientSocket.Host := Server;//设置主机名

//或设置服务器端地址ClientSocket.address:=服务器端地址

ClientSocket.Port:=9999;

ClientSocket.Active := True;//请求建立连接。


2. 通信 


客户端: 

clientsocket.Socket.SendText(’所发送的信息’);//通过调用该函数发送信息


客户端接收来自服务器端的信息

procedure TForm1.ClientSocket2Read(Sender:TObject;Socket:TCustomWinSocket);

begin

Edit2.Text:=socket.ReceiveText;//得到服务器端发来的信息

end;


服务器端:


服务器端收到客户端发来的信息,则会激活ServerSocketClientRead事件,通过ServerSocket的Socket.ReceiveText可以得到信息的内容。 


procedure TForm1.ServerSocketClientRead(Sender:TObject;Socket:TCustomWinSocket);

begin

Edit1.Text:=Socket.ReceiveText;//得到客户端发来的信息

end;


服务器端向客户发送信息用ServerSocket.socket.connections[0].sendtext(’信息内容’);


3. 关闭连接 


客房端通过ClientSocket.close关闭连接。


服务器将激活OnDisconnect事件

procedure TForm1.ServerSocketClientDisconnect(Sender: TObject;Socket:TCustomWinSocket);

begin

ServerSocket.Active := False;//服务器关闭监听

end

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值