여러 장치가 TCP/Ip 포트에 연결되어 있고 .NET에서 소켓을 통해이 장치를 모두 읽으 려합니다.이 장치를 연결하기 전에이 작업을 수행 할 수 있습니까? 아무도 여러 소켓 연결을 듣고 나를 도울 수있는 여러 장치가 있습니까?다중 소켓 연결
Q
다중 소켓 연결
1
A
답변
0
일반적으로 다중 연결 응용 프로그램의 경우 서버가 특정 포트를 수신하고 연결을 수신 한 후 장치가 새 소켓을 생성 할 새 포트를 반환합니다.
1
이것은 완전한 대답은 아니지만 올바른 방향을 제시해야합니다.
Socket socketForClient = tcpListener.Accept();
같은 모든 연결 클라이언트를 사용할 수 있습니다. 새로운 연결이 들어 오거나 닫히면 처리하거나 업데이트 할 수있는 Socket 객체의 배열을 가질 수 있습니다.
1
비동기 Tcp 수신기를 생성하려고합니다. 여기에 읽기 : MSDN Socket Class
먼저 당신이 당신의 리스너를 설정 :
private static System.Threading.ManualResetEvent connectDone =
new System.Threading.ManualResetEvent(false);
void StartListen(IPEndPoint serverEP, int numDevices)
{
sock.Bind(serverEP);
sock.Listen(numDevices); // basically sit here and wait for client to request connect
/*
* While statement not required here because AcceptConnection()
* method instructs the socket to BeginAccept()...
*/
connectDone.Reset();
sock.BeginAccept(new AsyncCallback(AcceptConnection), sock);
connectDone.WaitOne();
}
을 몇 가지 예에서, 당신은 while(true)
블록의 내부하여 BeginAccept(...)
방법을 볼 수 있습니다. 그러나 당신은 비동기를 필요로하지 않습니다. 나는 while(true)
을 사용하는 것이 부적절하다고 생각합니다. 당신이 비동기 운동의 몇 가지를 작동하면, 보통
void AcceptConnection(IAsyncResult asyncRes)
{
connectDone.Set();
System.Net.Sockets.Socket s = channelworker.EndAccept(asyncRes);
byte[] messagebuffer = new byte[bufferSize];
/*
* Tell socket to begin Receiving from caller.
*/
s.BeginReceive(messageBuffer, 0, messageBuffer.Length,
System.Net.Sockets.SocketFlags.None, new AsyncCallback(Receive), s);
/*
* Tell Channel to go back to Accepting callers.
*/
connectDone.Reset();
sock.BeginAccept(new AsyncCallback(AcceptConnection), sock);
connectDone.WaitOne();
}
및 .Beginxxx
/.Endxxx
방법의 묘리를 터득하고, AsyncCallback을 사용하여, 당신의 걸림 얻을 것이다 : 물론, 당신은 다음 aynchronously 연결을 수락 어떻게 작동하는지. 내가 준 MSDN 레퍼런스를 통해 읽어 보면 꽤 좋은 시작이 될 것입니다.
관련 문제
- 1. 서버에 연결하는 다중 소켓 클라이언트
- 2. 다중 소켓 모니터링
- 3. Java의 다중 클라이언트 소켓?
- 4. 연결 해제시 Java 소켓 연결 재 연결
- 5. java 서버 응용 프로그램에서 다중 소켓 연결 관리
- 6. gwt 소켓 연결
- 7. 파이썬에서 소켓 연결 테스트하기
- 8. 소켓 연결 오류
- 9. 대기열의 Java 소켓 연결
- 10. 소켓 연결 문제 + php
- 11. iphone의 소켓 연결
- 12. PostgreSQL 소켓 연결
- 13. 비동기 소켓 연결
- 14. C# 소켓 연결
- 15. PHP에서 소켓 연결 읽기
- 16. 블루투스 소켓 연결
- 17. 자바와 테스트 소켓 연결
- 18. 소켓 연결 : Python
- 19. 최대 오픈 소켓 연결
- 20. iPhone에서의 SSL 소켓 연결
- 21. 소켓 연결 문제
- 22. PHP 소켓 연결 최적화
- 23. 소켓 연결 Windows
- 24. C++ 소켓 연결 오류
- 25. 소켓 연결 제한 시간
- 26. Perl 소켓 연결 확인
- 27. 튜닝 소켓 연결 호출 시간 초과 연결
- 28. Java 소켓 연결 해제보고 C# 연결 해제
- 29. PHP에서 다중 TCP 소켓 요청
- 30. 보안 소켓 연결 모범 사례