2009-04-23 2 views
1

연결을 수신하는 데 사용하는 소켓에서 패킷을 보내려고했습니다. 물론 실패했습니다.C# : 간단한 TCP 서버 질문

내가 파스칼로 코딩 한 날은 기억해야 할 또 다른 소켓이 있다는 것을 기억합니다. "Accept"후에 수신되었습니다.

이 맞다면 글쎄, 이것은 내 문제 : 나는 클라이언트로 패킷을 전송해야

내 TCP 서버에 WSAAsyncSelect 함수()를 사용하고 있습니다 (C#을)

protected override void WndProc(ref Message m) 
    { 
     switch (m.Msg) 
     { 

      case Values.MESSAGE_ASYNC: 
       switch (m.LParam.ToInt32()) 
       { 
        case Values.FD_ACCEPT: 
         WS2.Accept(); 
         break; 

        case Values.FD_READ: 
         WS2.Receive(); 
         break; 
        case Values.FD_CLOSE: 
         WS2.Close(); 
         break; 
       } 
       break; 

      default: 
       base.WndProc(ref m); 
       break; 
     } 
    } 

연결되면.

어떻게 그 클라이언트에 패킷을 보내야하는 소켓을 얻을 수 있습니까?

Acceptance()를 호출하지 않은 이유는 C#에서 어떻게 수행해야하는지 모르기 때문에 예제를 검색했지만 이전 WSAAsyncSelect()를 사용하지 않았기 때문입니다.

수행 방법을 보여주는 예를 제공해주십시오.

미리 감사드립니다.

답변

2

TcpListener을 살펴보십시오. 언어를 C#으로 제한하여 비 C# 예제를 제거하십시오.

+0

예, 링크를 TcpListener로 변경했습니다. 언어 필터를 C#으로만 변경하십시오. –

+0

아주 나쁜 예이지만 어떻게 작동하는지 알 수 있습니다. 소켓 clientsock = sock.Accept(); –