ClientSocket和ServerSocket 通信 如何 指定 ClientSocket 的本地端口 ( 积分: 50 )

  • 主题发起人 主题发起人 一团火
  • 开始时间 开始时间

一团火

Unregistered / Unconfirmed
GUEST, unregistred user!
ClientSocket 和 ServerSocket 通信
ServerSocket 的 port =9925
如何 指定 ClientSocket 的本地端口 也是 9925
也就是说,用本地的 9925 去连接服务器的 9925

指定 clientsocket 本地端口 为 9925 这条语句如何写..
 
ClientSocket 和 ServerSocket 通信
ServerSocket 的 port =9925
如何 指定 ClientSocket 的本地端口 也是 9925
也就是说,用本地的 9925 去连接服务器的 9925

指定 clientsocket 本地端口 为 9925 这条语句如何写..
 
这个好像是随机的吧,不能自己指定的
 
因为服务器不可能,把所有的端口都开放,所以只能指定哪一个端口。[:(]
 
ClientSocket.port:=9925;
 
是这样, ClientSocket.port:=9925; 只是说明,本地要连远程的哪个端囗.
 
只要能快速解决这个问题目,分不够可以另外开贴结帐。再加150分
 
参考下面的方法试一下,TCP和UDP均可
IdUDPClient1.Active:=false;
IdUDPClient1.Port:=SpinEdit1.Value;
  IdUDPClient1.Host:=Edit1.Text;
IdUDPClient1.Binding.Port:=SpinEdit2.Value;//本地
IdUDPClient1.Binding.Bind;
IdUDPClient1.Active:=true;
 
clientsocket.socket.localport := 9925
如果9925以分配,将连接失败
 
clientsocket.socket.localport 是只读的。

用这段代码可以实现你的功能。
================================================================
procedure TForm1.ClientSocket1Lookup(Sender: TObject;
Socket: TCustomWinSocket);
var
SockAddrIn: TSockAddrIn; //uses winsock
iRc:Integer;
begin
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_addr.S_addr := 0;
SockAddrIn.sin_port := htons(1979); //要绑定的端口
iRc:=bind(ClientSocket1.Socket.SocketHandle, SockAddrIn,

sizeof(TSockAddrIn));
if iRc= 0 then
ShowMessage('绑定成功!')
else
ShowMessage(Format('%d',[WSAGetLastError()]));
end;
 
记得好像用监听
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2718599
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2221121
里面说得很清楚了。
提问题前请先检索一下,别浪费了分数。
 
clientsocket.socket:=9925,
如果连不通可以换换其他端口看看
 
多人接受答案了。
 
后退
顶部