2014. 12. 23. 11:51
C# with TCP/IP
프로그램 설명
서버가 listen 상태에서 클라이언트로부터 접속이 이루어지면 "hello Client" 메시지를 클라이언트에 전송하고, 클라이언트로부터 전송 된 메시지를 화면에 출력합니다.
클라이언트는 서버에 접속 한 후 사용자의 입력을 기달리는 프롬프트를 화면에 출력하고, 사용자가 입력하는 메시지를 서버에 전송하고 서버로부터 받은 받은 메시지 "hello Client" 화면에 보여줍니다.
실행 후
메시지 전송 후
프로그램 작성 순서
1. 소켓과 관련한 네임스페이스를 서버/클라이언트 모두에 포함 시킵니다.
using System.Net; using System.Net.Sockets;2. 서버 프로그램
Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sck.Bind(new IPEndPoint(0, 1994)); sck.Listen(0); Socket acc = sck.Accept(); byte[] buffer = Encoding.UTF8.GetBytes("Hello Client"); acc.Send(buffer, 0, buffer.Length, SocketFlags.None); buffer = new byte[acc.SendBufferSize]; int rec = acc.Receive(buffer, 0, buffer.Length, SocketFlags.None); Array.Resize(ref buffer, rec); Console.WriteLine("Received: {0}", Encoding.UTF8.GetString(buffer)); sck.Close(); acc.Close(); Console.Read();3. 클라이언트 프로그램
Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1994); sck.Connect(endPoint); Console.Write("Enter Message: "); string msg = Console.ReadLine(); byte[] msgBuffer = Encoding.UTF8.GetBytes(msg); sck.Send(msgBuffer, 0, msgBuffer.Length, SocketFlags.None); byte[] buffer = new byte[255]; int rec = sck.Receive(buffer, 0, buffer.Length, SocketFlags.None); Array.Resize(ref buffer, rec); Console.WriteLine("Recevied: {0}", Encoding.UTF8.GetString(buffer)); Console.Read();
'C# with TCP/IP' 카테고리의 다른 글
[Program C#]Socket 통신 - 버퍼 사이즈보다 많은 양의 데이타를 받을 시 (0) | 2014.12.23 |
---|---|
[Program C#]Socket 통신 - Handling Disconnection (0) | 2014.12.23 |
[Program C#]Socket 통신 - 예제 (0) | 2014.12.23 |
Socket 시스템 호출 명령 (0) | 2014.12.23 |
응용 프로토콜 - 비연결/연결 (0) | 2014.12.22 |