ftp1

来源:互联网 发布:淘宝添加视频代码 编辑:程序博客网 时间:2024/05/22 08:31
using System;using System.Net;using System.Net.Sockets;using System.Text;namespace tcpserver{    /// <summary>    /// Class1 的摘要说明。    /// </summary>    class server    {        /// <summary>        /// 应用程序的主入口点。        /// </summary>        [STAThread]        static void Main(string[] args)        {            //            // TODO: 在此处添加代码以启动应用程序            //            int recv;//用于表示客户端发送的信息长度            byte[] data=new byte[1024];//用于缓存客户端所发送的信息,通过socket传递的信息必须为字节数组            IPEndPoint ipep=new IPEndPoint(IPAddress.Any,9050);//本机预使用的IP和端口            Socket newsock=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);            newsock.Bind(ipep);//绑定            newsock.Listen(10);//监听            Console.WriteLine("waiting for a client");            Socket client=newsock.Accept();//当有可用的客户端连接尝试时执行,并返回一个新的socket,用于与客户端之间的通信            IPEndPoint clientip=(IPEndPoint)client.RemoteEndPoint;            Console.WriteLine("connect with client:"+clientip.Address+" at port:"+clientip.Port);            string welcome="welcome here!";            data=Encoding.ASCII.GetBytes(welcome);            client.Send(data,data.Length,SocketFlags.None);//发送信息            while(true)            {//用死循环来不断的从客户端获取信息                data=new byte[1024];                recv=client.Receive(data);                Console.WriteLine("recv="+recv);                if (recv==0)//当信息长度为0,说明客户端连接断开                    break;                Console.WriteLine(Encoding.ASCII.GetString(data,0,recv));                client.Send(data,recv,SocketFlags.None);            }            Console.WriteLine("Disconnected from"+clientip.Address);            client.Close();            newsock.Close();        }    }}
using System;using System.Net;using System.Net.Sockets;using System.Text;namespace tcpclient{    /// <summary>    /// Class1 的摘要说明。    /// </summary>    class client    {        /// <summary>        /// 应用程序的主入口点。        /// </summary>        [STAThread]        static void Main(string[] args)        {            //            // TODO: 在此处添加代码以启动应用程序            //            byte[] data=new byte[1024];            Socket newclient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);            Console.Write("please input the server ip:");            string ipadd=Console.ReadLine();            Console.WriteLine();            Console.Write("please input the server port:");            int port=Convert.ToInt32(Console.ReadLine());            IPEndPoint ie=new IPEndPoint(IPAddress.Parse(ipadd),port);//服务器的IP和端口            try            {                //因为客户端只是用来向特定的服务器发送信息,所以不需要绑定本机的IP和端口。不需要监听。                newclient.Connect(ie);            }            catch(SocketException e)            {                Console.WriteLine("unable to connect to server");                Console.WriteLine(e.ToString());                return;            }            int recv = newclient.Receive(data);            string stringdata=Encoding.ASCII.GetString(data,0,recv);            Console.WriteLine(stringdata);            while(true)            {                string input=Console.ReadLine();                if(input=="exit")                    break;                newclient.Send(Encoding.ASCII.GetBytes(input));                data=new byte[1024];                recv=newclient.Receive(data);                stringdata=Encoding.ASCII.GetString(data,0,recv);                Console.WriteLine(stringdata);            }            Console.WriteLine("disconnect from sercer");            newclient.Shutdown(SocketShutdown.Both);            newclient.Close();        }    }}

原创粉丝点击