티스토리 뷰
[TcpClient]
- 클라이언트 소켓프로그램 작업
- 자동 소켓생성..
1. TcpClient newclient = new TcpClient();
newclient.Connect("원격호스트명", 8000); //원격호스트명과 포트번호
2. IPAddress address = Dns.GetHostByName(Dns.GetHostName()).AddressList[0];
IPEndPoint endpoint = new IPEndPoint(address, 10232);
TcpClient newclient = new TcpClient(endpoint);
newclient.Connect("원격호스트명/", 8000);
3. TcpClient newclient = new TcpClient("원격호스트명/", 8000);
NetworkStream stream = newclient.GetStream();
byte[] outbytes = Encoding.ASCII.GetBytes("Testing...");
stream.Write(outbytes, 0, outbytes.Length);
byte[] inbytes = new byte[1024];
stream.Read(inbytes, 0, inbytes.Length);
string instring = Encoding.ASCII.GetString(inbytes);
Console.WriteLine(instring);
stream.Close();
newclient.Close();
[TcpListener]
- 서버측 소켓프로그램 작업
* 생성자
- TcpListener(int port) 특정로컬포트번호에 바인드함.
- TcpListener(IPEndPoint ie) 특정로컬EndPoint에 바인드함.
- TcpListener(IPAddress addr, int port) 특정로컬IPAddress와 포트번호에 바인드함.
TcpListener newserver = new TcpListener(8000);
newserver.Start(); //연결요청을 대기함.
TcpClient newclient = newserver.AcceptTcpClient(); //들어오는 연결요청을 대기,수락함.
NetworkStream stream = newclient.GetStream();
byte[] outbytes = Encoding.ASCII.GetBytes("Testing....");
stream.Write(outbytes, 0, outbytes.Length);
byte[] inbytes = new byte[1024];
stream.Read(inbytes, 0, inbytes.Length);
string instring = Encoding.ASCII.GetString(inbytes);
Console.WriteLine(instring);
stream.Close();
newclient.Close();
newserver.Stop(); //연결종료...
[UdpClient]
- 비연결 소켓작업...
- 특정주소에 바인드하여 데이터를 대기할 필요없슴.
1. UdpClient newconn = new UdpClient(8000);
IPEndPoint remoteclient = new IPEndPoint(IPAddress.Any, 0);
byte[] recv = newconn.Receive(ref remoteclient);
string data = Encoding.ASCII.GetString(recv); //데이터수집
Console.WriteLine("From: {0}", remoteclient.ToString());
Console.WriteLine(" Data: {0}", data);
newconn.Close();
2. UdpClient newclient = new UdpCient(8000);
IPEndPoint remotehost = new IPEndPoint(IPAddress.Parse("192.168.0.1"), 8000);
byte[] bytes = Encoding.ASCII.GetBytes("Test string...");
newclient.Send(bytes, bytes.Length, remotehost);
newclient.Close();