이 내용은 TCP/IP 소켓 프로그래밍 C#을 참고 하였습니다.

C#으로 제작된 Tcp Echo 클라이언트 프로그램

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

class TcpEchoClient {
static void Main(string[] args) {

if ((args.Length < 2) || (args.Length > 3)) {
throw new ArgumentException("Parameters: <Server> <Word> [<Port>]");
// thorw new ArgumentException();
}

String server = args[0]; // 서버명 혹은 IP 주소

// 입력된 String을 유니코드 형태로 변환한다.
// byte[] byteBuffer = Encoding.ASCII.GetBytes(args[1]);
byte[] byteBuffer = Encoding.Unicode.GetBytes(args[1]);

// 포트 번호가 파라미터로 입력되었는지를 확인, 아닐경우 7로 Default
int servPort = (args.Length == 3) ? Int32.Parse(args[2]) : 7;

TcpClient client = null;
NetworkStream netStream = null;

try {
// 서버의 해당 포트에 접속하는 소켓을 생성한다.
client = new TcpClient(server, servPort);

Console.WriteLine("Connected to server..., sending echo string");

netStream = client.GetStream();

// 인코딩된 스트링을 서버로 전송한다
netStream.Write(byteBuffer, 0, byteBuffer.Length);

Console.WriteLine("Sent {0} bytes to server...", byteBuffer.Length);

int totalBytesRcvd = 0; // 현재까지 수신된 바이트
int bytesRcvd = 0; // 최종 수신 때 수신된 바이트

// 서버로부터 스트링을 다시 읽어 온다.
while (totalBytesRcvd < byteBuffer.Length) {
if ( (bytesRcvd = netStream.Read(byteBuffer, totalBytesRcvd,
byteBuffer.Length - totalBytesRcvd)) == 0) {

Console.WriteLine("Connection closed prematurely.");
break;
}
totalBytesRcvd += bytesRcvd;
}

Encoding.GetEncoding(949);
Console.WriteLine("Received {0} bytes from server: {1}", totalBytesRcvd,
Encoding.Unicode.GetString(byteBuffer, 0, totalBytesRcvd));
// Encoding.ASCII.GetString(byteBuffer, 0, totalBytesRcvd));
} catch (Exception e) {
Console.WriteLine(e.Message);
} finally {
netStream.Close();
client.Close();
}
}
}

Encoding.ASCII 방식을 주의해서 사용한다.
ASCII방식을 사용할 경우 한글이 안되므로 Encoding.Unicode을 사용한다.
이 프로그램은 TCP/IP 소켓 프로그래밍 C#버전 책에서 참조한 내용입니다.

호스트 정보를 반환 하는 C# Console 프로그램입니다.
using System;
using System.Net;
using System.Net.Sockets;

class IPAddressExample {
static void PrintHostInfo(String host) {
try {
IPHostEntry hostInfo;

// 호스트 또는 주소에 대한 DNS 해석한다.
hostInfo = Dns.GetHostEntry(host);

// 호스트의 기본 호스트명을 출력한다
Console.WriteLine("\tCanonical Name : " + hostInfo.HostName);

// 이 호스트에 대한 IP 주소들을 출력한다
Console.Write("\tIP Addresses: ");
foreach (IPAddress ipaddr in hostInfo.AddressList) {
Console.Write(ipaddr.ToString() + " ");
}

Console.WriteLine();

// 이 호스트의 앨리어스들을 출력한다.
Console.Write("\tAliases: ");
foreach (String alias in hostInfo.Aliases) {
Console.Write(alias + " ");
}

Console.WriteLine("\n");
} catch (Exception) {
Console.WriteLine("\tUnable to resolve host: " + host + "\n");
}
}

static void Main(string[] args) {
// 로컬 호스트 정보를 취합하고 출력
try {
Console.WriteLine("Local Host:");
String localHostName = Dns.GetHostName();
Console.WriteLine("\tHost Name: " + localHostName);

PrintHostInfo(localHostName);
} catch (Exception) {
Console.WriteLine("Unable to resolve local host\n");
}

// 커맨드 라인에서 입력한 호스트들에 대한 정보를 취합하고 출력
foreach (String arg in args) {
Console.WriteLine(arg + ":");
PrintHostInfo(arg);
}
}
}

.NET 2.0 에서는 다음과 같다
Dns.Reslove 대신 Dns.GetHostEntry Method를 쓴다.

Dns.GetHostEntry Method (String) 
Note: This method is new in the .NET Framework version 2.0.
Resolves a host name or IP address to an IPHostEntry instance.


도구 상자에서 일반 콤포넌트에서 마우스 우측을 클릭후 항목선택을 클릭한다음
다음과 같은 화면에서 WindowsMediaPlayer 콤포넌트를 선택하여 사용할 수 있게 한다.
그런후 폼에 Windows Media Player 컨트롤을 가져다 놓고 다음과 같이 작성한다
private void Form1_Load(object sender, EventArgs e)
{
string MediaPath = @"D:\My Documents\음악(Music)\POP\Linkin Park - Run Away.mp3";
WindowsMediaPlayer.settings.autoStart = false;
WindowsMediaPlayer.URL = MediaPath;
}


'C#' 카테고리의 다른 글

호스트 정보를 반환하는 프로그램  (0) 2006.05.26
마소의 강좌  (0) 2006.05.18
C# 기초 강좌 추천 사이트  (0) 2006.04.25
처음 만들어본 C# 응용프로그램  (0) 2006.04.16
C++ Faq Lite  (0) 2006.04.14

C# 기초 강좌 추천 사이트

http://www.jabook.org/

http://www.hoonsbara.com/

'C#' 카테고리의 다른 글

마소의 강좌  (0) 2006.05.18
마이크로 소프트에 있는 MediaPlayer 를 이용한 예제  (0) 2006.05.16
처음 만들어본 C# 응용프로그램  (0) 2006.04.16
C++ Faq Lite  (0) 2006.04.14
C# 기본 Hello World! 출력하기  (0) 2006.04.12
처음 만들어본 C# 응용 프로그램

C++ FAQ Lite --- Frequently Asked Questions


http://www.parashift.com/c++-faq-lite/


'C#' 카테고리의 다른 글

C# 기초 강좌 추천 사이트  (0) 2006.04.25
처음 만들어본 C# 응용프로그램  (0) 2006.04.16
C# 기본 Hello World! 출력하기  (0) 2006.04.12
c#에서 클래스를 call by value하는법  (0) 2006.04.12
C#에서 Win32 API 사용하기  (0) 2006.04.12
콘솔에 Hello World! 출력하기

using System; 
using System.Collections.Generic;
using System.Text;

namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");

}
}
}

'C#' 카테고리의 다른 글

C# 기초 강좌 추천 사이트  (0) 2006.04.25
처음 만들어본 C# 응용프로그램  (0) 2006.04.16
C++ Faq Lite  (0) 2006.04.14
c#에서 클래스를 call by value하는법  (0) 2006.04.12
C#에서 Win32 API 사용하기  (0) 2006.04.12

+ Recent posts