開發平台(Platform): (Ex: Win10, Linux, ...)
Ubuntu
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
經過我測試,client的sendto()沒問題會正常送出 但問題就是我的Server端的
if((recvfrom(clientfd,buffer,bufferlen,0,(struct sockaddr*)&client,&size)==-1)
{
printf ("ERROR: Obtain new Socket Despcritor error.\n");
}
照理來說 這邊if應該要等client端的sendto()再往下繼續執行 可是我只要執行./server
會直接執行printf ("ERROR: Obtain new Socket Despcritor error.\n");這行
看起來像是recvfrom 沒有block
也有google過 找其他UDP範例 也是一樣的寫法 。
餵入的資料(Input):
client端輸入 server端的ip port
預期的正確結果(Expected Output):
Server端等待client連線後傳送一文字檔(.txt)給client
Client收到文字檔
錯誤結果(Wrong Output):
Server端在recvfrom 沒有block
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
補充說明(Supplement):
我自己有寫另一個tcp版本可以正常運作
換成UDP跟UDP的function 不知為何無法正常運作