소켓 생성의 기본적인 과정을 생략해준다.
하지만 비동기 메서드가 없고 다른 제약도 많다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace TcpSrvrCon
{
class Program
{
static void Main(string[] args)
{
string data;
/*
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9090);
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
newsock.Bind(ipep);
newsock.Listen(10);
*/
TcpListener newsock = new TcpListener(IPAddress.Parse("127.0.0.1"),9090); //소켓생성,바인드
newsock.Start(); //리슨
Console.WriteLine("Client 연결 대기중...");
/*
Socket client = newsock.Accept();
IPEndPoint newclient = (IPEndPoint)client.RemoteEndPoint;
Console.WriteLine("Connected with {0} at port {1}", newclient.Address, newclient.Port);
*/
TcpClient client = newsock.AcceptTcpClient();
Console.WriteLine("Client 연결됨");
/*
NetworkStream ns = new NetworkStream(client);
*/
NetworkStream ns = client.GetStream();
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
string welcome = "Welcome to my test server";
sw.WriteLine(welcome);
sw.Flush();
while (true)
{
try
{
data = sr.ReadLine();
}
catch
{
break;
}
Console.WriteLine(data);
sw.WriteLine(data);
sw.Flush();
}
/*
Console.WriteLine("disconnected from {0} ",newclient.Address);
*/
Console.WriteLine("Client 연결 종료");
sw.Close();
sr.Close();
ns.Close();
newsock.Stop(); //헬퍼클래스가 아니면 생략
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace TcpClientCon
{
class Program
{
static void Main(string[] args)
{
string data;
string input;
/*
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9090);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
*/
TcpClient server;
try
{
/*
server.Connect(ipep);
*/
server = new TcpClient("127.0.0.1", 9090); //소켓생성,커넥트
}
catch (SocketException e)
{
Console.WriteLine("접속실패");
Console.WriteLine(e.ToString());
return;
}
/*
NetworkStream ns = new NetworkStream(server);
*/
NetworkStream ns = server.GetStream();
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
data = sr.ReadLine();
Console.WriteLine(data);
while (true)
{
input = Console.ReadLine();
if (input == "exit")
{
break;
}
sw.WriteLine(input);
sw.Flush();
data = sr.ReadLine();
Console.WriteLine(data);
}
Console.WriteLine("접속을 종료합니다.");
sr.Close();
sw.Close();
ns.Close();
/*
server.Shutdown(SocketShutdown.Both);
*/
server.Close();
}
}
}