nhtoby

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
服务器端程序:
using System;
using System.Net;
using System.Net.Sockets;
using System.Collections.Generic;
using System.Text;

namespace net
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            
int recv;
            
byte[] data = new byte[1024];
            IPEndPoint ipEnd 
= new IPEndPoint(IPAddress.Any, 5566);
            Socket socket 
= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Bind(ipEnd);
            socket.Listen(
10);
            Console.Write(
"Waiting for a client");
            Socket client 
= socket.Accept();
            IPEndPoint ipEndClient 
= (IPEndPoint)client.RemoteEndPoint;
            Console.Write(
"Connect with {0} at port {1}", ipEndClient.Address, ipEndClient.Port);
            
string welcome = "Welcome to my server";
            data 
= Encoding.ASCII.GetBytes(welcome);
            client.Send(data, data.Length, SocketFlags.None);
            
while (true)
            
{
                data 
= new byte[1024];
                recv 
= client.Receive(data);
                
if (recv == 0)
                    
break;
                Console.Write(Encoding.ASCII.GetString(data, 
0, recv));
                client.Send(data, recv, SocketFlags.None);
            }

            Console.Write(
"Disconnect form{0}", ipEndClient.Address);
            client.Close();
            socket.Close();
        }

    }

}


客户端程序:
using System;
using System.Net;
using System.Net.Sockets;
using System.Collections.Generic;
using System.Text;


namespace client
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
byte[] data = new byte[1024];
            
string input, stringData;
            IPAddress ip 
= IPAddress.Parse("127.0.0.1");
            IPEndPoint ipEnd 
= new IPEndPoint(ip, 5566);
            Socket socket 
= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            
try
            {
                socket.Connect(ipEnd);
            }
            
catch (SocketException e)
            {
                Console.Write(
"Fail to connect server");
                Console.Write(e.ToString());
                
return;
            }
            
int recv = socket.Receive(data);
            stringData 
= Encoding.ASCII.GetString(data,0,recv);
            Console.Write(stringData);
            
while (true)
            {
                input 
= Console.ReadLine();
                
if (input == "exit")
                {
                    
break;
                }
                socket.Send(Encoding.ASCII.GetBytes(input));
                data 
= new byte[1024];
                recv 
= socket.Receive(data);
                stringData 
= Encoding.ASCII.GetString(data,0,recv);
                Console.Write(stringData);
            }
            Console.Write(
"disconnect from server");
            socket.Shutdown(SocketShutdown.Both);
            socket.Close();
        }
    }
}
posted on 2007-05-15 16:48  toby chen  阅读(13776)  评论(2编辑  收藏  举报