2010-11-22 4 views
1

안녕하세요. 소켓을 사용하지 않고 C# 응용 프로그램에서 패킷을 보낼 수 있습니까? 특별히 포맷 된 패킷을 서버에 보내려면 WebClient 또는 HttpWebRequest를 사용하고 싶습니다. 내가 본 예는 UDP 클라이언트를 사용하는 경향이 있습니다. 감사합니다HttpWebRequest와 함께 특정 패킷 보내기

답변

1

"구체적으로 서식이 지정된"의미에 따라 다릅니다. HttpWebRequest는 본질적으로 UDP가 아닌 HTTP 프로토콜 주위의 .Net 래퍼이므로 헤더와 같은 객체 데이터를 수정하는 것 이외의 다른 패킷을 사용자 정의 할 수 없습니다.

+0

나는 본다. 소켓을 사용하지 않고 HttpWebRequest가 제공하는 것보다 맞춤 설정된 패킷을 보낼 수있는 다른 방법이 없다는 뜻입니까? 감사합니다 – Skoder

+0

정확히 무엇을하려하십니까? –

+0

PC에서 다른 PC로 마법 패킷을 보내려고합니다. – Skoder

0

IPEndPoint 클래스를 살펴보아야합니다. IP 및 포트 주소로 네트워크 종점에 데이터를 전송하도록 설계되었습니다. 다음은 간단한 예입니다. 자세한 내용은 링크를 참조하고 오류 검사와 함께 더 긴 예제를 참조하십시오.

byte[] data = new byte[1024]; 
string payload = "<Enter Your Payload Here>"; 
IPEndPoint ep = new IPEndPoint("127.0.0.1", 1234); //IP + Port 

Socket remoteServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
data = Encoding.ASCII.GetBytes(payload); 
remoteServer.SendTo(data, data.Length, SocketFlags.None, ep); 
관련 문제