怎样指定ServerSocket中的IP 地址? 在一台机器里设有多个IP地址时,要ServerSocket只在特定的IP上侦听。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看他的源码,他真正用来实现套接字的部分是TCustomWinSocket,看他的构造函数,constructor TCustomWinSocket.Create(ASocket: TSocket);begin inherited Create; Startup; FSocketLock := TCriticalSection.Create; FASyncStyles := [asRead, asWrite, asConnect, asClose]; FSocket := ASocket; FAddr.sin_family := PF_INET; FAddr.sin_addr.s_addr := INADDR_ANY;//注意这一句 FAddr.sin_port := 0; FConnected := FSocket <> INVALID_SOCKET;end;上面的 FAddr.sin_addr.s_addr := INADDR_ANY中的INADDR_ANY允许服务器应用监听主机计算机上面每个网络接口上的客户机活动。一般情况下,在该地址绑定套接字和本地接口时,网络应用才利用这个地址来监听连接。如果你有一个多址系统,这个地址就允许一个独立应用接受发自多个接口的回应。如果你要自己指定IP地址,这么写FAddr.sin_addr.S_addr := inet_addr(pchar('192.168.1.3'));关键点就是在这里,具体怎么实现,自己好好看看他的源码,如果觉得改起来不方便,那就用win sock API直接做,其实就那么几个api函数 其实你可以试一下socketconnection,指定ip地址,socketconnection。ipaddress:= 192.168.*.* 在绑定的时候设置sin_addr.s_addr应该就可以吧 强烈同意wudi_1982的说法,Delphi自带的那些控件在socket上都不咋的,还是自己用API做吧 RaIIS IIS操作类 如何增加MIME 类型 ? 动态配置数据库问题 小问题,日期型变量加整数,这样写正确吗?目前测试的几个结果都正确,比如明天的日期应该是now +1 找一个ComboTree 如何判断用ShellExecute打开的程序的执行情况? 一个百思不得其解的问题 ClientDataSet过滤数据的问题 关于MDI的一个问题 如何PrintScreen才能把鼠标光标一起打印或放到剪切板? 动态改变dbgrid单元格颜色(某一个单元格,而不是行) 如何设置com+的默认属性 如何让一个COM+对象单实例,急,在线等,问题解决多加100分
begin
inherited Create;
Startup;
FSocketLock := TCriticalSection.Create;
FASyncStyles := [asRead, asWrite, asConnect, asClose];
FSocket := ASocket;
FAddr.sin_family := PF_INET;
FAddr.sin_addr.s_addr := INADDR_ANY;//注意这一句 FAddr.sin_port := 0;
FConnected := FSocket <> INVALID_SOCKET;
end;
上面的
FAddr.sin_addr.s_addr := INADDR_ANY
中的INADDR_ANY允许服务器应用监听主机计算机上面每个网络接口上的客户机活动。一般情况
下,在该地址绑定套接字和本地接口时,网络应用才利用这个地址来监听连接。如果你有一
个多址系统,这个地址就允许一个独立应用接受发自多个接口的回应。
如果你要自己指定IP地址,
这么写
FAddr.sin_addr.S_addr := inet_addr(pchar('192.168.1.3'));关键点就是在这里,具体怎么实现,自己好好看看他的源码,如果觉得改起来不方便,那就用win sock API直接做,其实就那么几个api函数
socketconnection。ipaddress:= 192.168.*.*