posted by 방랑군 2012. 1. 6. 15:48

1. Server

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Net.Sockets;
using System.Net;

namespace NetworkServer
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Before Start");
            IPAddress address = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(address, 8010);

            Console.WriteLine("Before Listener Start");
            listener.Start();

            Console.WriteLine("Before Accept Socket");
            Socket socket = listener.AcceptSocket();

            Console.WriteLine("Before Receive");
            byte[] myByte = new byte[256];
            socket.Receive(myByte);

            string willOut = System.Text.Encoding.Default.GetString(myByte); 

            Console.WriteLine("Before Close");
            socket.Close();
            listener.Stop();
        }
    }
}


2. Client 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Net;
using System.Net.Sockets;
using System.IO;

namespace NetworkClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Before Connect");
            TcpClient tcpClient = new TcpClient();
            tcpClient.Connect("127.0.0.1", 8010);

            Console.WriteLine("Before Get Stream");
            byte[] myByte = new byte[256];
            string strLetters = "HWANG SEUNG JAE";
            //인터넷상에서 스트림 이동은 모두 바이트만 가능합니다. 
            myByte = System.Text.Encoding.Default.GetBytes(strLetters);
            Stream stream = tcpClient.GetStream();

            Console.WriteLine("Before Write");
            stream.Write(myByte, 0, myByte.Length);

            Console.WriteLine("Before Close");
            tcpClient.Close();
        }
    }
}