1
나는 wifi를 통해 클라이언트를 통해 연결을 허용하는 서버 코드를 작성했습니다. wifi 소켓은 ttyAMA0으로 표시되는 Wifi Dongle에서 열립니다.소켓에서 연결 해제를 감지 할 수 없습니다.
나는 소켓을 만들
내 리더 THR 중 하나
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(PORT);
나는 보통 수락 할 ...
while(1)
{
new_fd = accept(sfd,(struct sockaddr*)&client_addr,&len);
...
...
}
void* Command2Buff(void *args)
{
...
while(1)
{
....
clientBytes = recv(str_fd.new_conn_fd,&temp,1);
if(clientBytes == 0 || clientBytes == -1)
{
...
}
globalCmdbuf[wr] = temp;
}
}
휴대 전화에서 Wi-Fi를 켜고 소켓에 연결할 수 있지만 아직 데이터가 전송되지 않습니다.
- 나는 recv 대신에 읽으려고했지만 아무런 차이가 없었습니다.
- TCPALIVE 옵션도 시도했습니다. 여전히 작동하지 않습니다.
- 나는 내가 해제 SO_RCVTIMEO을 사용
serv_addr.sin_addr.s_addr = WLAN;
'recv()'는 네트워크 중단을 감지 할 의무가 없습니다. TCP/IP는주의 깊게 설계되었으므로 필요하지 않습니다. SO_RCVTIMEO를 통해 읽기 시간 초과를 사용해야합니다. – EJP
감사합니다 EJP It Worked ... 그럭저럭 벗어날 수있었습니다. :) – RootPhoenix