导航:首页 > 配服务器 > tcp如何服务器获取客户端ip

tcp如何服务器获取客户端ip

发布时间:2023-06-03 16:43:21

1. 如何获得Socket连接客户端的IP地址

如果服务器端要获取客户端ip的话:


//假设socket(),bind(),listen()函数已经完成
addrlen=sizeof(client);
connetfd=accept(listenfd,(structsockaddr*)&client,&addrlen);

那么client.sin_port 就是客户端的端口

client.sin_addr.s_addr 就是客户端的ip。

这两个都是以网络字节序来保存的,如果要printf的话需要先转化为主机字节序

2. 客服端和服务端建立TCP连接后,怎么从服务端获取客户端的IP地址

Socket clientSock = ServerSocket.Accpet();
接受客户端连接

DateTime connectTime = DateTime.Now;
连接一个客户端后,当前时间就是连接时间。

(clientSock.RemoteEndPoint as IPEndPoint).IPAddress;
ip地址
(clientSock.RemoteEndPoint as IPEndPoint).Port;
端口号

3. 服务器如何获取客户端的IP地址,并与客户端建立TCP连接

客户端的IP自动获取,关键要看客户端的IP是由谁来分配的,如果都是有ISP提供的那么服务器利用IP去连接客户端就不太可能。可以尝试用下面两种思路解决:
1、能否让客户机主动连接服务器。
2、使用动态DNS。让每个客户机都申请一个动态域名,无论它的IP怎样变,当改变以后都会到DNS服务器进行注册,然后服务器使用主机的名字访问客户端。

4. TCP服务器如何检测客户端的IP和端口

你熟悉socket
API不?如果不熟悉的话建议先看看socket编程的文档。这是链接地址:http://msdn.microsoft.com/en-us/library/ms738545(v=VS.85).aspx
一般服务端的sokcet
API调用顺序为:
bind()
//
设置服务端口
listen()
//
等待客户端连接
accept()
//
与客户端建立连接
请参考:http://msdn.microsoft.com/en-us/library/ms737526(v=VS.85).aspx
这是accept函数的原型:
SOCKET
accept(
__in
SOCKET
s,
__out
struct
sockaddr
*addr,
__inout
int
*addrlen
);
第二个参数,
addr,包含了客户端的IP地址和端口。你可以认为这就是客户端的IP和端口。但是,要注意的是这个IP不一定就完全等价于客户端本机的端口。比如:客户端在一个局域网里,IP地址是192.168.1.100,然后它通过ADSL路由连接到internet,再通过internet连接到服务端。这个时候,服务端获得的客户端IP地址就可能是那个ADSL路由的IP。

阅读全文

与tcp如何服务器获取客户端ip相关的资料

热点内容
960除24除4简便算法 浏览:784
关于解压英语翻译 浏览:562
python控制键盘右键 浏览:920
php没有libmysqldll 浏览:828
时政新闻app哪个好 浏览:906
手机已加密怎么办 浏览:201
安卓手机截屏怎么传到苹果 浏览:527
京管家app哪里下载 浏览:33
文件夹横向排列的竖向排列 浏览:451
51单片机驱动摄像头模块 浏览:689
政府文件加密没法转换 浏览:373
android判断栈顶 浏览:331
凭证软件源码 浏览:860
androidwebview滚动事件 浏览:11
如何将电脑上的图片压缩成文件包 浏览:899
程序员转金融IT 浏览:837
黑马程序员培训效果如何 浏览:913
本地集成编译 浏览:528
韩国电影哪个app可以看 浏览:703
玖月授权什么app什么梗 浏览:785