怎么实现WinForm客户端访问客户端

医手 2008-09-04 10:03:14
WinForm程序
刚开始都访问服务器,在服务器的协助下,怎么实现客户端访问客户端?
...全文
127 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LovingAlison 2008-09-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yagebu1983 的回复:]
接分!!
[/Quote]
yagebu1983 2008-09-04
  • 打赏
  • 举报
回复
接分!!
医手 2008-09-04
  • 打赏
  • 举报
回复
嗯, 有点明白了,偶试试
viki117 2008-09-04
  • 打赏
  • 举报
回复

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

/// <summary>
///TcpClass 的摘要说明
/// </summary>
public class TcpClass
{
public static string ConnectServer(string ServerName)
{
TcpClient tcpc = new TcpClient();
Byte[] read = new Byte[32];
if (ServerName == "" && ServerName == null)
{
return "No Server Address";//未指定服务器名称
}
String server = ServerName;
// 验证服务器是否存在
if (Dns.GetHostEntry(server) == null)
{
return "Can't find Server";//找不到服务器
}
// 尝试连接到服务器
try
{
tcpc.Connect(server, 13);
if (tcpc.Connected == false)
{
return "Can't connect Server";//无法连接到服务器
}
}
catch
{
return "Can't connect Server";//无法连接到服务器
}
// 获取流
Stream s = tcpc.GetStream();
// 读取流并将它转换为 ASCII 码形式
int bytes = s.Read(read, 0, read.Length);
String Time = Encoding.ASCII.GetString(read);
// 显示数据
//Console.WriteLine("已接收到的 + 字节" + "字节");
//Console.WriteLine("当前日期和时间是:" + "时间");
tcpc.Close();
return "已接收到" + bytes.ToString() + "字节 " + "当前日期和时间" + Time.ToString();
}
}
CODE163 2008-09-04
  • 打赏
  • 举报
回复
你干嘛非要弄人家IP,你有端口就够了 给同一个外网IP发送信息通过不同的端口 而因为端口不同信心会通过这个IP映射到不同的主机!3楼说过了
优途科技 2008-09-04
  • 打赏
  • 举报
回复
具体:
---------------
有服务器就好办撒

1.客户端开启某端口向服务发送请求。
2.服务器监听代码,收到请求,解析客户端ip和port(这里的因为nat的原因,port也许和客户开启的端口号不同,不过没关系,这个端口号才是你可以用的端口号)并入库

ok,有上面两步了,其他部分估计你自己就可以做了,实际这就是传说中的“nat打洞”技术
优途科技 2008-09-04
  • 打赏
  • 举报
回复
可以用socket.
医手 2008-09-04
  • 打赏
  • 举报
回复
以我目前的水平最多只能解析到客户端外网的IP和端口号。。。。
就算连内网的IP我也解析出来了,我又怎么让另一个客户端去访问它呢?
wanghui0380 2008-09-04
  • 打赏
  • 举报
回复
有服务器就好办撒

1.客户端开启某端口向服务发送请求。
2.服务器监听代码,收到请求,解析客户端ip和port(这里的因为nat的原因,port也许和客户开启的端口号不同,不过没关系,这个端口号才是你可以用的端口号)并入库

ok,有上面两步了,其他部分估计你自己就可以做了,实际这就是传说中的“nat打洞”技术
医手 2008-09-04
  • 打赏
  • 举报
回复
如果两个人都有外网IP那是很简单,
我是假设两个人都是通过路由器上网的那种...
ojekleen 2008-09-04
  • 打赏
  • 举报
回复
p2p,可以用socket.

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧