C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.

来源:百度问答 责任编辑:李利平
默认
特大
宋体
黑体
雅黑
楷体


C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.(图2)


C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.(图5)


C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.(图8)


C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.(图10)


C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.(图12)


C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀.(图14)

  为了解决用户可能碰到关于"C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀."相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁有完整的例子呀."相关的详细问题如下:我们学校要做一个项目,老师说用TCP/IP进行通信.用C#中的WinForm做,要求服务器端和客户端之间能够进行通信.请问怎么弄呀?至少两者之进能进行交互,发送消息呀,我现在用TCPClient做...我们学校要做一个项目,老师说用TCP/IP进行通信.用C#中的WinForm做,要求服务器端和客户端之间能够进行通信.请问怎么弄呀?
至少两者之进能进行交互,发送消息呀,我现在用TCPClient做只能在本机进行通信,只要把服务器端和客户端分开放到局域网上的不同机子上就不能访问了.上面说什么C#TcpClient 由于目标机器积极拒绝,无法连接.也不知道是什么原因.我找了网上很多网友贴出来的代码做出来也是一样的结果.书上的也是.求各位大叔大婶.帮帮忙啦.有没有什么好的,完整的代码或解决方案就不要猫着了,贴出来吧.有步骤的话最好.最好是自己本人试过的.网络上的代码我已经看了个底朝天了.就不要复制上来了.谢谢.展开
===========突袭网收集的解决方案如下===========

解决方案1:

这是我以前在学校的时候做的一个c/s系统里面的类似qq聊天工具
你看看。。
这是客服端的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.Net.Sockets;

namespace demo2
{
public partial class frmTouchWe : Form
{
Thread a;
//发送IP跟端口
private UdpClient udp = new UdpClient("127.0.0.1",9000);
//接收端口
private UdpClient udpSend = new UdpClient(8000);
private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0);
public frmTouchWe()
{
InitializeComponent();
Form.CheckForIllegalCrossThreadCalls = false;
}

private void frmTouchWe_Load(object sender, EventArgs e)
{ //定义线程开始
a = new Thread(new ThreadStart(Run));
a.Start(); }

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//客服接收信息。弹出窗体
frmAnswerInfo answerInfo = new frmAnswerInfo();
answerInfo.Show(); }

private void button1_Click(object sender, EventArgs e)
{
//在自己的信息栏中显示自己的信息
lsbInfo.Items.Add(txtInfo.Text);
//用户信息内容
string Mes = txtInfo.Text;
//用户信息
string mes = "用户:"+Program.user.id+"("+Program.user.name+")"+" " + time;
//转换成字节
byte[] b = UTF8Encoding.UTF8.GetBytes(Mes);
byte[] bb = UTF32Encoding.UTF8.GetBytes(mes);
//发送信息
udp.Send(bb, bb.Length);
udp.Send(b, b.Length);
txtInfo.Text = "";
}
//循环接受客服发来的信息
private void Run()
{
while (true)
{
byte[] b = udpSend.Receive(ref ip);
string mes = UTF8Encoding.UTF8.GetString(b);
lsbInfo.Items.Add(mes);
}
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

private void button3_Click_1(object sender, EventArgs e)
{
//清空所有项
lsbInfo.Items.Clear();
}
}
}

下面是服务器端的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.Net.Sockets;

namespace demo2
{
public partial class frmAnswerInfo : Form
{
//定义一条线程,用来循环接收客户发来的信息
Thread a;
//定义另一条线程,用来升起窗体
Thread b;
//发送到信息的地址
private UdpClient udpSend = new UdpClient("127.0.0.1",8000);
//接收端口
private UdpClient udp = new UdpClient(9000);
private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0);
public frmAnswerInfo()
{
InitializeComponent();
Form.CheckForIllegalCrossThreadCalls = false;
}
//循环接收信息
private void Run()
{
while (true)
{
byte[] b = udp.Receive(ref ip);
string mes = UTF8Encoding.UTF8.GetString(b);
lsbInfo.Items.Add(mes);
}
}

private void frmAnswerInfo_Load(object sender, EventArgs e)
{
//设置窗体的位置属性(窗体加载时候慢慢从右下角升上来~类似qq广告~~)
this.Top = Screen.PrimaryScreen.WorkingArea.Height;
this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width;
//设置窗体的名字
a = new Thread(new ThreadStart(Run));

b = new Thread(new ThreadStart(run));
//开始线程
a.Start();
b.Start();
}
//用户点击谈话时显示该窗体
private void run()
{
while (true)
{
this.Top = this.Top - 10;
Thread.Sleep(100);
if (Screen.PrimaryScreen.WorkingArea.Height - this.Height >= this.Top)
{
break;
}
}
}
//发送按钮编码
private void button1_Click(object sender, EventArgs e)
{
//获取当前时间
DateTime time = DateTime.Now;
//在自己的信息栏中显示自己发出去的信息
lsbInfo.Items.Add("在线客服:"+time);
lsbInfo.Items.Add(txtInfo.Text);

//在客户端显示自己的信息标题
string mes = "在线客服:"+time;
//信息内容
string Mes = txtInfo.Text;
//发送信息标题
byte[] b = UTF8Encoding.UTF8.GetBytes(mes);
//发送信息内容
byte[] bb = UTF8Encoding.UTF8.GetBytes(Mes);
udpSend.Send(b, b.Length);
udpSend.Send(bb,bb.Length);
txtInfo.Text = "";
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

private void button3_Click(object sender, EventArgs e)
{
//清除所有项
lsbInfo.Items.Clear();
}
}
}

这个可以跑的。。我以前就用过的。

解决方案2:

这个得用p2p技术,普通的tcp/ip无法直接突破不同网段.
参看网址http://developer.51cto.com/art/200602/21200.htm

解决方案3:

socket,局域网 是没有问题的,但是广域网,需要用p2p

我这里有老外写得socket、server和client,非p2p,在局域网测试过了。
但是代码太长,贴不完,需要的话 留下mail。

解决方案4:

把机器防火墙关了,地址对,端口可用肯定连得上

解决方案5:

项目?不会是北大青鸟的QQ吧。。。

C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀?谁...

在学校的时候做的一个c/s系统里面的类似qq聊天工具 你看看。。 这是客服端的代码... EventArgs e) { //清空所有项 lsbInfo.Items.Clear(); } } } 下面是服务器端的代码 ...

局域网TCP服务器,需要外网能访问,怎么做?

端(中灰鸽子端)连接广域网客户端(控制端),然后服务端和建立的联系。如通过80端口出数据,穿透防火墙等等。 你可以尝试修改数据包出去的port,同时在两个端进行修改! -----...

c#开发的C/S系统外网访问内网服务器数据库的问题

我知道,不过你要给我加分 HI我吧!0分太少了吧

内网WEB服务器IP如何映射到外网

。 2.给你的用来做web服务器的那台电脑设置一个内网固定IP ,比如192.168.0.188 3.然后在你的作为网关的那台电脑上打开端口映射软件,将外来指向你固定IP 80端口的数据...

如何实现内网客户端使用外网Ip访问内网服务器

路由器:IPtime 企业级路由器 (E104R) 在路由器完成端口映射,外网客户端使用外网IP成功访问内网服务器。 内网客户端无法通过外网IP 访问 内网服务器。 这样给本地调试带来...

外网服务器如何与内网客户端通信?

TCP/IP协议,通讯时使用的主要包括TCP协议和UDP协议,具体有什么区别就不多说... 端口代替,然后传输到QQ服务器;别人给你的消息,QQ服务器会顺着你的这个连接,将数据...

内网静态ip如何建立ftp服务器,实现外网访问

得用花生壳转接,但是这样影响网速

易语言服务器与客户端问题。为什么内网测试可以监视到客户,...

不是端口问题,如果我没猜错的话,你用了类似于路由器的功能,可以到路由器设置里设置一下虚拟服务器,让你的端口开放起来,连接的时候填上外网的IP并附带正确的端口号,就行...

服务器IP、内网IP和外网IP有什么联系?分别是怎样获得的?

要弄懂这个问题,你首先要了解什么叫内网,什么叫外网,什么叫服务器,服务器在网络中所... 窄义上的外网指的就是Internet 服务器所扮演的角色不同,他的IP地址会有所区别, IP地...

外网连接固定IP内网服务器怎么设置网络

第一步在路由器上做你服务器的内网的TCP协议的1723端口映射,因路由器牌子不同,映... 中的"端口映射大全" 第二步在服务器上建VPN,分为单网卡和双网卡的方法...

声明:突袭网提供的解决方案均由系统收集自互联网,仅供参考,突袭网不保证其准确性,亦不代表突袭网观点,请自行判断真伪,突袭网不承担任何法律责任.

为您准备的相关内容:

  • 我在自己的电脑上用C#编写了Socket 服务器和客户端内网...
  • C# Socket通信问题:我写的服务器程序与本机的服务器程...
  • 我用C#做了一个C/S结果的管理软件,服务器和客户端怎么在外...
  • java网络编程应该怎样在客户端和服务器间实现通信?
  • C#客户端与客户端如何通过服务器通信
  • C#:客服端和服务端建立TCP连接后,怎么从服务端获取客户端...
  • C#用tcpclient怎么实现服务器与客户端的互相发送接收...
  • 外网服务器如何与内网客户端通信?
  • >>> 温馨提示:您还可以点击下面分页查看更多相关内容 <<<

    头条

    热门

    Copyright ? 2012-2016 tuxi.com.cn 版权所有 京ICP备10044368号 京公网安备11010802011102号 关于我们 | 广告服务 | 诚聘英才 | 联系我们 | 友情链接 | 免责申明