下载此文档

socket图片文件传输示例.doc


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
socket图片文件传输示例
从前在网上找过很多sock编程的资料,都很高深。。。。
对于入门级的我来说,简单又不简陋的小例子更好一些,所以总结一下刚写的小例子,
用select模型实现的jpg文件传输,并不完善,只作为今后的一个参考。
代码经过调试,应该能用吧。。。。。
服务器端:
#pragma comment (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;
==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;
{
printf("error on ioctl");
return -1;
}
if((fp=fopen("","rb"))==NULL) //指定的文件是否存在
{ //指定文件不存在
printf("不能打开指定的文件!\n");
}
fseek(fp,0,SEEK_END); //读写指针移动到文件结尾
k==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<totalsock;i++)
{
FD_SET(tempsocket,&fdread);
FD_SET(tempsocket,&fdwrite);
}
if(SOCKET_ERROR==(sockok=select(NULL,&fdread,&fdwrite,NULL,NULL)))
{
printf("error on select");
return -1;
}
if(FD_ISSET(listensocket,&fdread))
{
sockok--;
if(INVALID_SOCKET==(newconnection=accept(listensocket,(SOCKADDR*)&cliaddr,&cliaddrlen)))
{
printf("error5");
return -1;
}
else
{
printf("come");
totalsock++;
tempsocket=newconnection;
}
if(SOCKET_ERROR==ioctlsocket(newconnection,FIONBIO,&sockmode))
{
printf("error on ioctl");
return -1;
}
}

memset(buf,0,sizeof(buf));
//memset(buf0,0,sizeo

socket图片文件传输示例 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人Alone-丁丁
  • 文件大小1.17 MB
  • 时间2021-04-16