프로그래밍언어/C#

C# 소켓통신

부산딸랑이 2014. 6. 16. 20:12

참고 사이트
http://dobon.net/vb/dotnet/internet/tcpclientserver.html
http://ameblo.jp/tasoh/entry-10274850055.html

먼저
서버
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

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

namespace ConsoleApplication4_TCPServer
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("키를 눌러서 서버 실행");
Console.ReadLine();

try
{
int port = 2222;
IPAddress ip = IPAddress.Parse("192.168.10.107");

TcpListener server = new TcpListener(ip, port);
server.Start();

TcpClient client = server.AcceptTcpClient();
IPEndPoint endPoint = (IPEndPoint)client.Client.RemoteEndPoint;
IPAddress address = endPoint.Address;

NetworkStream stream = client.GetStream();

byte[] getData = new byte[256];
MemoryStream ms = new MemoryStream();
//int cnt;
//List<byte[]> bytelist = new List<byte[]>();
//while ((cnt = stream.Read(getData, 0, getData.Length)) > 0)
//{
// bytelist.Add(getData);
//}

////byte[] result = new byte[bytelist.Count];
//string result = "";
//foreach (byte[] bArr in bytelist)
//{
// result += Encoding.UTF8.GetString(bArr);
//}
do
{
int resSize = stream.Read(getData, 0, getData.Length);
ms.Write(getData, 0, resSize);
} while (stream.DataAvailable);
string result = Encoding.UTF8.GetString(ms.ToArray());

Console.WriteLine("수신 결과:{0}", result);

client.Close();

}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("키 누르면 종료");
Console.ReadLine();
}
}
}
}

다음을 클라이언트

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

namespace ConsoleApplication4_TCPClient
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("키를 누르면 송신처리가 시작됩니다.");
Console.WriteLine("먼저 서버를 구동시켜 주십시오");
Console.ReadLine();

try
{
string ipAddress = "192.168.10.107";
int port = 2222;

TcpClient client =
new TcpClient(ipAddress, port);

string str = "Hello! C# 세월호 참사가 발생한 지 어느덧 한 달. 오늘 3구의 시신이 수습돼 이제 남은 실종자는 20명입니다.";
byte[] tmp = Encoding.UTF8.GetBytes(str);

NetworkStream stream = client.GetStream();

stream.Write(tmp, 0, tmp.Length);

client.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("키 누르면 종료");
Console.ReadLine();
}
}
}
}





'프로그래밍언어 > C#' 카테고리의 다른 글

Xamarin Toast메세지  (0) 2014.08.24
xamarin 값 저장  (0) 2014.08.24
listview   (0) 2014.06.12
thread  (0) 2014.06.10
thread.invoke  (0) 2014.06.10