开发平台(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 不知为何无法正常运作