tcp文件发送和接收-server端/windows
来源:互联网 发布:淘宝图片设计软件 编辑:程序博客网 时间:2024/06/05 19:15
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<winsock2.h>#define BUF_SIZE 30/* run this program using the console pauser or add your own getch, system("pause") or input loop */void ErrorHandling(char *message);int calculate(int opnum,int opnds[],char oprator);int main(int argc, char *argv[]) {char PORT[] = "9190";//端口 WSADATA wsaData;SOCKET hServSock,hClntSock;char message[BUF_SIZE];char buf[BUF_SIZE];FILE * fp;int readCnt;SOCKADDR_IN servAdr, clntAdr;int clntAdrSize;if (WSAStartup(MAKEWORD(2,2),&wsaData) != 0) {ErrorHandling("WSAStartup() error!");}fp = fopen("test.jpg","rb");hServSock = socket(PF_INET,SOCK_STREAM,0);if (hServSock == INVALID_SOCKET) {ErrorHandling("socket() error!");}memset(&servAdr,0,sizeof(servAdr));servAdr.sin_family = AF_INET;servAdr.sin_addr.s_addr = htonl(INADDR_ANY);servAdr.sin_port = htons(atoi(PORT));if (bind(hServSock,(SOCKADDR*)&servAdr,sizeof(servAdr)) == SOCKET_ERROR){ErrorHandling("BIND() error!");}if (listen(hServSock,5) == SOCKET_ERROR) {ErrorHandling("listen() error!");}printf("Listen....\n");clntAdrSize = sizeof(clntAdr);hClntSock = accept(hServSock,(SOCKADDR*)&clntAdr,&clntAdrSize);printf("haveConnected....\n");while(1) {readCnt = fread((void*)buf,1,BUF_SIZE,fp);if (readCnt < BUF_SIZE) {send(hClntSock,(char*)&buf,readCnt,0);break;}send(hClntSock,(char*)&buf,BUF_SIZE,0);}shutdown(hClntSock,SD_SEND); //断开输出流 recv(hClntSock,(char*)buf,BUF_SIZE,0);printf("Message from client:%s \n",buf);fclose(fp);closesocket(hServSock);closesocket(hServSock);WSACleanup();return 0 ;}void ErrorHandling(char *message) {fputs(message,stderr);fputc('\n',stderr);exit(1);}
0 0
- tcp文件发送和接收-server端/windows
- 文件发送和接收-client 端/windows
- tcp 发送接收文件
- qt 下UDP消息的接收和发送和TCP发送文件
- 基于TCP协议的发送和接收端
- SOCKET TCP 发送和接收示例代码
- TCP的数据发送和接收
- TCP的数据发送和接收
- Tcp设置发送和接收超时
- qt-tcp发送和接收识别
- tcp发送和接收的原理
- windows tcp 客户端 发送文件
- socket 编程入门教程(一)TCP server 端:7、接收与发送
- socket 编程入门教程(一)TCP server 端:7、接收与发送
- TCP 滑动窗口/TCP 接收和发送缓冲区/内核sock接收和发送缓冲区
- linux 下tcp的发送接收端
- Tcp异步接收发送
- Windows下数据的接收和发送
- @property
- block 深入理解
- 暗文显示和键盘模式
- web前端开发工程师“想都不用想”的几个知识点
- VOS2009官方升级功能更新日志大全
- tcp文件发送和接收-server端/windows
- 《Java实战开发经典》第五章5.3
- Android URI简介
- kvm虚拟机静态和动态迁移
- 解决MySQL不允许从远程访问的方法
- Android Fragment 详细翻译
- Android中RelativeLayout的属性详解
- 使用 GCD 自定义 UIImageView 增加异步下载图片的类别
- leetcode: (191) Number of 1 Bits