누군가 내 문제를 해결할 수 있기를 바랍니다.pthread 내에서 연결 허용
main()
{
1)create socket
2)bind on port 8888
3)listen
5) while(accept)
{
5) create pthread1 to handle the connection using function1
6)join the pthread1
}
}
function 1()
{
1)take the file descriptor from the main
2) discusses with client using the descriptor (send/recv)
3) create pthread2 to handle data exchange
4) join the pthread 2
5)free the descriptor
}
function 2()
{
1)create socket
2)bind on port 8889
3)listen
4)accept
}
내 문제 : 나는 첫 번째 클라이언트를 시도 - 언제, 모든 것이 OK, 두 개의 연결 나는
내 프로그램의 구현이이처럼, C를 사용하여 클라이언트/서버 FTP 응용 프로그램을 만들려고 노력 잘 했어! - 두 번째 클라이언트를 시도하면 첫 번째 연결은 정상이지만 두 번째 연결은 BIND 오류가 발생합니다 !! - 문제의 원인을 알지 못합니다. - 도움을 주셔서 감사합니다.
답장을 보내 주셔서 감사 드리며,이 문제를 해결하고 결과를 알려 드리겠습니다. –
이제 코드 편집 : for 루프를 1025에서 40000으로 변경 한 다음 바인딩이 제대로 된 후 클라이언트에 포트 번호를 보내고 모든 클라이언트가 원하는대로 연결할 수 있습니다. 정말 고마워요. . –
@badr assa - 추악한 측면에서 비효율적이지만'bind' 오류를 처리하고 이미 사용중인 포트를 건너 뛰면 작동 할 것입니다. 문제가 생기면 위에서 제안한 방법으로 전환 할 것을 제안하십시오. 'bind'에 0 포트를 건네주고'getsockname'으로 할당 한 포트를 검색하십시오. 깨끗해. 어쨌든 나는 네가가는 길에 기쁘다. 행복한 코딩. – Duck