0
UDP 소켓 fd
에서 데이터를 받았습니다. 이 정보를 사용하여 보낸 사람과 TCP 연결을 설정하는 방법은 무엇입니까? buf
에는 TCP 포트가 있습니다.UDP 세그먼트의 데이터를 사용하여 TCP 연결을 설정하는 방법은 무엇입니까?
struct sockaddr_storage remote_addr;
socklen_t remote_addr_len;
recvfrom(fd, buf, BUFSIZE, 0, (struct sockaddr *)&remote_addr, &remote_addr_len);
아래 코드는 시도했지만 작동하지 않습니다. 나는 소켓 프로그래밍에 익숙하지 않고 이것을 이해하려고 노력하면서 머리를 찢고있다.
newfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
struct hostent *info;
info = gethostbyname(remoteAddr.h_addr);
struct sockaddr_in newConn;
newConn.sin_family = AF_INET;
bcopy((char *)info->h_addr, (char *)&newConn.sin_addr.s_addr, info->h_length);
newConn.sin_port = htons(mesgTcpPort); //mesgTcpPort is of type int gotten from buf
connect(newfd,(struct sockaddr *)&newConn,sizeof newConn);
오류 검사가 생략되었습니다.
오류 검사를 추가하면 어떤 오류가 발생합니까? (아무 것도 얻지 못했다면 코드가 작동 할 것입니다.) –
실제 코드를 확인하는 중에 오류가 있습니다. 코드를 짧게 유지하기 위해 여기에서 코드를 제거했습니다. – user1205604