Server 예제
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace TcpServerExample
{
class TCPServerExample
{
static void Main(string[] args)
{
// 서버 IP 주소와 포트 설정
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 7000);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 서버 소켓에 IP 주소와 포트 바인딩
server.Bind(ipep);
server.Listen(1); // 서버 연결 요청 최대 개수 설정
Console.WriteLine("서버 시작... 클라이언트 접속 대기 중...");
// 클라이언트의 접속 대기
Socket client = server.Accept();
// 접속한 클라이언트의 IP 주소와 포트 번호 출력
IPEndPoint ip = (IPEndPoint)client.RemoteEndPoint;
Console.WriteLine("{0} 주소, {1} 포트로 접속됨", ip.Address, ip.Port);
byte[] data = Encoding.Default.GetBytes("환영합니다. *^^*");
// 클라이언트에게 문자열 전송
client.Send(data, data.Length, SocketFlags.None);
data = new byte[1024];
// 수신한 데이터가 있으면 화면에 출력
if (client.Receive(data) != 0)
Console.WriteLine("수신 메시지: " + Encoding.Default.GetString(data));
else
Console.WriteLine("수신 데이터 없음...");
// 클라이언트 소켓 연결 종료
client.Close();
// 서버 소켓 종료
server.Close();
Console.ReadLine();
}
}
}
Client 예제
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace TcpClientExample
{
class Program
{
static void Main(string[] args)
{
// 서버의 IP 주소와 포트 설정
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7000);
// 클라이언트 소켓 생성 및 서버에 연결 시도
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Connect(ipep); // 127.0.0.1 서버의 7000번 포트에 접속 시도
Console.WriteLine("서버에 접속..."); // 서버 접속 성공 시 메시지 출력
byte[] data = new byte[1024];
// 서버로부터 데이터 수신 및 읽기
server.Receive(data);
Console.WriteLine("수신 데이터: " + Encoding.Default.GetString(data));
// 서버로 데이터 전송
server.Send(Encoding.Default.GetBytes("데이터 전송..."));
// 소켓 연결 종료
server.Close();
Console.ReadLine();
}
}
}
정보 감사합니다.