Posted on 2007-12-19 14:42
济公 阅读(1928)
评论(1) 编辑 收藏 引用 所属分类:
NetWorks
//服务器端
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
public class server
{
public static void Main()
{
try
{
// 把IP地址转换为IPAddress的实例
IPAddress ipAd = IPAddress.Parse(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString());
// 初始化监听器, 端口为8001
TcpListener myList=new TcpListener(ipAd,8001);
// 开始监听服务器端口
myList.Start();
// 输出服务器启动信息
Console.WriteLine("在8001端口启动服务...");
Console.WriteLine("本地节点为:" + myList.LocalEndpoint );
Console.WriteLine("等待连接.....");
// 等待处理接入连接请求
// 新建立的连接用套接字s表示
Socket s=myList.AcceptSocket();
Console.WriteLine("连接来自 "+s.RemoteEndPoint);
// 接收客户端信息
byte[] b=new byte[100];
int k=s.Receive(b);
Console.WriteLine("已接收...");
for (int i=0;i<k;i++)
{
Console.Write(Convert.ToChar(b[i]));
}
// 处理客户端请求,给客户端回应
ASCIIEncoding asen=new ASCIIEncoding();
s.Send(asen.GetBytes("The string was recieved by the server."));
Console.WriteLine("\n已发送回应信息");
// 善后工作,释放资源
s.Close();
myList.Stop();
}
catch (Exception e)
{
Console.WriteLine("Error..... " + e.StackTrace);
}
}
}
//客户端
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Net.Sockets;
public class client
{
public static void Main()
{
try
{
string strHost;
Console.WriteLine("Please enter the host IP address:");
strHost=Console.ReadLine();
// 新建客户端套接字
TcpClient tcpclnt = new TcpClient();
Console.WriteLine("连接.....");
// 连接服务器
tcpclnt.Connect(strHost,8001);
Console.WriteLine("已连接");
Console.Write("请输入要传输的字符串 : ");
// 读入字符串
String str=Console.ReadLine();
// 得到客户端的流
Stream stm = tcpclnt.GetStream();
// 发送字符串
ASCIIEncoding asen= new ASCIIEncoding();
byte[] ba=asen.GetBytes(str);
Console.WriteLine("传输中.....");
stm.Write(ba,0,ba.Length);
// 接收从服务器返回的信息
byte[] bb=new byte[100];
int k=stm.Read(bb,0,100);
// 输出服务器返回信息
for (int i=0;i<k;i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
Console.WriteLine();
// 关闭客户端连接
tcpclnt.Close();
}
catch (Exception e)
{
Console.WriteLine("Error..... " + e.StackTrace);
}
}
}