电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

socket图片文件传输示例

socket图片文件传输示例_第1页
1/10
socket图片文件传输示例_第2页
2/10
socket图片文件传输示例_第3页
3/10
从前在网上找过很多sock编程的资料,都很高深。。。。对于入门级的我来说,简单又不简陋的小例子更好一些,所以总结一下刚写的小例子,用 select 模型实现的jpg文件传输,并不完善,只作为今后的一个参考。代码经过调试,应该能用吧。。。。。服务器端:#pragma comment (lib,"ws2_32.lib")#include #include #define BUFLEN sizeof(buf)int main(){WSADATA wsaData;SOCKADDR_IN seraddr,cliaddr;SOCKET listensocket,newconnection,tempsocket;ULONG sockmode;int sockok,totalsock=0;struct fd_set fdwrite,fdread;char buf[10],buf0[10];union {char a[4];int b;}a,flag;a.b=flag.b=0;int cliaddrlen=sizeof(cliaddr);FILE *fp;long code;int n,he=0,m=0,k=0,b=0;char *p;if ( WSAStartup( MAKEWORD(2,0), &wsaData ) != 0 ){printf("error1");return -1;}if((listensocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET){printf("error2");return -1;}seraddr.sin_family=AF_INET;seraddr.sin_port=htons(8889);seraddr.sin_addr.s_addr=inet_addr("127.0.0.1");if(SOCKET_ERROR==bind(listensocket,(SOCKADDR*)&seraddr,sizeof(seraddr))){printf("error3");return -1;}if(SOCKET_ERROR==listen(listensocket,5)){printf("error4");return -1;}printf("wait ask");sockmode=1;if(SOCKET_ERROR==ioctlsocket(listensocket,FIONBIO,&sockmode)){printf("error on ioctl");return -1;}if((fp=fopen("output.jpg","rb"))==NULL) //指定的文件是否存在{ //指定文件不存在 printf("不能打开指定的文件!\n");} fseek(fp,0,SEEK_END); //读写指针移动到文件结尾k=a.b=ftell(fp); code=htonl(m); //返回当前读写指针的位置,即得到文件长度。 p=(char *)&k;while(1){FD_ZERO(&fdread);FD_ZERO(&fdwrite);FD_SET(listensocket,&fdread);for(int i=0;i

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

socket图片文件传输示例

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群