在我们用TcpListener.AcceptTcpClient()接收连接之后,我们迫切需要有一个方法可以得到对方的ip和port。这样,我们才可以查看是谁从哪里连到了我们的server上。
切入点在于TcpClient有一个protected的成员Client,这是一个System.Net.Sockets.Socket类型的对象。而我们知道System.Net.Sockets.Socket对象是可以得到remote ip和port的。
我们想到了用反射(Reflection),于是有了以下代码:
Socket GetSocket(TcpClient cln)
{
PropertyInfo pi = cln.GetType().GetProperty("Client", BindingFlags.NonPublic | BindingFlags.Instance);
Socket sock = (Socket)pi.GetValue(cln, null);
return sock;
}
string GetRemoteIP(TcpClient cln)
{
string ip = GetSocket(cln).RemoteEndPoint.ToString().Split(':')[0];
return ip;
}
public int GetRemotePort(TcpClient cln)
{
string temp = GetSocket(cln).RemoteEndPoint.ToString().Split(':')[1];
int port = Convert.ToInt32(temp);
return port;
}
分享到:
相关推荐
最简单的tcpClient建立通信、发送数据、接收数据函数,编写TCP通信的第一步。
C#用Socket实现TCPClient,简单好用的测试代码
1. 使用C#的TcpClient写的聊天软件 2. 代码特点: 书写规范, 【最简单】的TcpClient用法, 3. 这样的好处是看了一目了然,而不是给你一个乱七八糟的项目让你去看了一上午还没看明白TcpClient, Socket到底怎么使用的
c#利用TcpClient发送与接收文件源码。
TCPClient
C# TCPClient和TCPServer变成实例
基于C#tcpClient的端对端通信方式,
简单的Tcp通讯的源码 ,包含服务端和客户端
c# socket 、TCPClient、TCPListener 用法详解.doc
winform使用TcpClient/TcpListener类结合网络流建立多个客户机连接服务器程序,实现网络聊天通信的软件。程序比较完整,可以直接使用。
c#tcpclient通信,开发环境VS2008。主要功能:服务端用于转发其他客户端的信息,客户端之间可以通过服务端进行通信。
TcpClient(客户端) 和 TcpServer(服务端)代码示例 TcpListener 类提供一些简单方法,用于在阻止同步模式下侦听和接受传入连接请求。 可使用 TcpClient 或 Socket 来连接 TcpListener。 可使用 IPEndPoint、本地 IP ...
本实例使用TcpClient/TcpListener类结合网络流建立一个客户机/服务器程序,实现文件的网络传输。
C# 用TcpClient和TcpListener实现的功能 可以和网络通讯 此次只为了实现事件接受功能 希望能一起学习
C#编写的TCP异步通信,采用Socket实现,(还可用C#对Socket的封装TcpClient和TcpListener实现) 包含服务端及客户端完整代码
C#基于Socket的TcpClient异步实现和基于Socket的TcpServer异步实现
Learn to write C TCPClient client program source code
采用C#编写的tcp通信小程序,客户端可以和服务器通信
2.1.3 TcpClient与TcpListener类 31 2.1.4 解决TCP协议的无消息边界问题 33 2.2 利用同步TCP编写网络游戏 34 2.2.1 服务器端编程 34 2.2.2 客户端编程 49 2.3 异步TCP应用编程 66 2.3.1 EventWaitHandle类 67 2.3.2 ...
基于TcpClient和TcpListener实现客户端和服务器之间的通讯。很简单适合于初学者。程序分为服务器和客户端。要先开启服务器然后在连接服务器方可使用。