一个UDP的聊天控制台程序
2007-06-07 18:21
429 查看
实现了一个UDP的聊天控制台程序今天花了点时间看了哈.NET网络高级编程,动手,通过该程序,熟悉了NET利用UdpClient进行网络数据传送的一些方法,现把代码贴出来.
public class Chat
{
private static IPAddress remoteIPAddress;
private static int remotePort;
private static int localPort;
[STAThread]
static void Main(string[]args)
{
try
{
Console.WriteLine("Enter Local Port");
localPort=Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Enter Remote Port");
remotePort=Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Enter Remote IP address");
remoteIPAddress=IPAddress.Parse(Console.ReadLine());
//这里创立一个监听辅助线程,接收对方传送来的数据
Thread tRec=new Thread(new ThreadStart(Receiver));
tRec.Start();
while(true)
{
//当前线程(主线程)总不返回,一直执行发送信息,直到关闭应用
Send(Console.ReadLine());
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}
private static void Send(string datagram)
{
UdpClient sender=new UdpClient();
IPEndPoint endPoint=new IPEndPoint(remoteIPAddress,remotePort);
try
{
//Convert data to byte array
byte[]bytes=Encoding.ASCII.GetBytes(datagram);
//向某个远程主机的某端口发送数据
sender.Send(bytes,bytes.Length,endPoint);
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
sender.Close();
}
}
public static void Receiver()
{
UdpClient receivingUdpClient=new UdpClient(localPort);
IPEndPoint RemoteIpEndPoint=null;
try
{
Console.WriteLine("--------------*******Read for chat!!!*********------------------");
while(true)
{
byte[]receiveBytes=receivingUdpClient.Receive(ref RemoteIpEndPoint);
string returnData=Encoding.ASCII.GetString(receiveBytes);
Console.WriteLine("-"+returnData.ToString());
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
receivingUdpClient.Close();
}
}
}
从以上代码中,我们知道在利用UdpClient进行数据的传输时,主机A a端口向主机B a端口发送数据; 主机B b端口向主机A b端口发送数据
即每个主机方有一个发送端口,还有一个接收端口.从而达到相互通信的目的!
public class Chat
{
private static IPAddress remoteIPAddress;
private static int remotePort;
private static int localPort;
[STAThread]
static void Main(string[]args)
{
try
{
Console.WriteLine("Enter Local Port");
localPort=Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Enter Remote Port");
remotePort=Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Enter Remote IP address");
remoteIPAddress=IPAddress.Parse(Console.ReadLine());
//这里创立一个监听辅助线程,接收对方传送来的数据
Thread tRec=new Thread(new ThreadStart(Receiver));
tRec.Start();
while(true)
{
//当前线程(主线程)总不返回,一直执行发送信息,直到关闭应用
Send(Console.ReadLine());
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}
private static void Send(string datagram)
{
UdpClient sender=new UdpClient();
IPEndPoint endPoint=new IPEndPoint(remoteIPAddress,remotePort);
try
{
//Convert data to byte array
byte[]bytes=Encoding.ASCII.GetBytes(datagram);
//向某个远程主机的某端口发送数据
sender.Send(bytes,bytes.Length,endPoint);
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
sender.Close();
}
}
public static void Receiver()
{
UdpClient receivingUdpClient=new UdpClient(localPort);
IPEndPoint RemoteIpEndPoint=null;
try
{
Console.WriteLine("--------------*******Read for chat!!!*********------------------");
while(true)
{
byte[]receiveBytes=receivingUdpClient.Receive(ref RemoteIpEndPoint);
string returnData=Encoding.ASCII.GetString(receiveBytes);
Console.WriteLine("-"+returnData.ToString());
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
receivingUdpClient.Close();
}
}
}
从以上代码中,我们知道在利用UdpClient进行数据的传输时,主机A a端口向主机B a端口发送数据; 主机B b端口向主机A b端口发送数据
即每个主机方有一个发送端口,还有一个接收端口.从而达到相互通信的目的!
相关文章推荐
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 【实验 1-2】编写一个简单的 UDP 服务器和 UDPP 客户端程序。程序均为控制台程序窗口。
- Java 网络 UDP 一个局域网下的聊天小程序
- Udp编写一个聊天程序(线程方式)
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- udp网络聊天控制台程序
- 基于UDP的控制台聊天程序
- 黑马程序员 用UDP协议在dos命令行里模拟一个聊天程序
- 一个简单的基于udp协议的聊天程序
- VC++ 基于UDP的控制台聊天程序socket通信
- 写一个基于UDP协议的聊天小程序
- 使用UDP实现一个简单的聊天程序。
- UDP 聊天测试程序
- 基于MFC对话框的UDP简单聊天程序
- 用Node写的一个控制台看股票的小程序
- 黑马程序员-用UDP编写网络聊天程序
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用UDPClient 编写聊天程序
- 一个简单的聊天程序
- 一个简单的基于UDP字符界面的聊天应用程序(C/C++)