首先是两个程序,分别是socket的客户端和服务端。(在windows系统vc6.0编译)
服务器端:
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"WS2_32.lib")
void main()
{
    WSADATA wsd;
    SOCKET server;                                            //服务器socket
    SOCKADDR_IN addrSrv;    
    char sendBuf[100];
    char recvBuf[100];
    SOCKADDR_IN addrClient;
    SOCKET client;                                            //连接的客户端socket
    int len;
    if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
    {
        printf("start up failed!\n");
        return ;
    }
    server=socket(AF_INET,SOCK_STREAM,0);                    //创建socket
    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);            //设置地址
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000);                            //设置端口号
    bind(server,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));        //绑定
    listen(server,5);                                        //设置最多连接数
    len=sizeof(SOCKADDR);
    while(1)
    {
        client=accept(server,(SOCKADDR*)&addrClient,&len);    //接收客户端连接
        sprintf(sendBuf,"Welcome %s ",
        inet_ntoa(addrClient.sin_addr));
        send(client,sendBuf,strlen(sendBuf)+1,0);            //发送信息客户端
        recv(client,recvBuf,100,0);                            //接收客户端数据
        printf("%s\n",recvBuf);
        closesocket(client);
    }
    closesocket(client);                                    //关闭连接
    WSACleanup();
}
客户端:
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib,"WS2_32.lib")
void main()
{
    WSADATA wsd;
    SOCKET sockClient;                                            //客户端socket
    SOCKADDR_IN addrSrv;
    char recvBuf[100];
    if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
    {
        printf("start up failed!\n");
        return ;
    }
    sockClient=socket(AF_INET,SOCK_STREAM,0);                    //创建socket
    addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000);
    connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));    //连接服务器端
    recv(sockClient,recvBuf,100,0);                                //接收服务器端数据
    printf("%s\n",recvBuf);
    send(sockClient,"hello world",strlen("hello world")+1,0);    //向服务器端发送数据
    closesocket(sockClient);                                    //关闭连接
    WSACleanup();
}

以上两个程序只需要简单的改写,就可以实现简单的传送文件了。
将客户端发送的信息改为发送请求的文件名。
send(sockClient,filename,strlen(filename)+1,0);   
服务器端接收到文件名:
recv(client,filename,100,0);
服务器端发送文件信息:
        if((fp=fopen(filename,"rb"))==NULL)closesocket(client);    //请求的文件不存在,则关闭连接
        n=fread(sendBuf,1,100,fp);
        while(n>0){
            send(client,sendBuf,n,0);            //发送文件客户端
            n=fread(sendBuf,1,100,fp);
        }
客户端则接收文件信息:
if((fp=fopen(filename,"wb"))==NULL)
    {
        return ;
    }
    while((ret=recv(sockClient,recvBuf,100,0))>0)
    {
        fwrite(recvBuf,1,ret,fp);
    }

socket的客户端和服务端(Windows控制台程序)的更多相关文章

  1. c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP  入门级客户端与服务端交互代码 网 ...

  2. Python socket编程客户端与服务端通信

    [本文出自天外归云的博客园] 目标:实现客户端与服务端的socket通信,消息传输. 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM ...

  3. Socket通信客户端和服务端代码

    这两天研究了下Socket通信,简单实现的客户端和服务端代码 先上winfrom图片,客户端和服务端一样 服务端代码: using System; using System.Collections.G ...

  4. 用PHP的socket实现客户端到服务端的通信

    服务端 <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); //本地IP $address = 'loca ...

  5. 基于socket.io客户端与服务端的相互通讯

    socket.io是对websocket的封装,用于客户端与服务端的相互通讯.官网:https://socket.io/. 下面是socket.io的用法: 1.由于使用express开的本地服务,先 ...

  6. 基于socket的客户端和服务端聊天机器人

    服务端代码如下: using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threa ...

  7. 基于socket的客户端和服务端聊天简单使用 附Demo

    功能使用 服务端 分离一个不停接受客户端请求的线程 接受不客户端请求的线程中,再分离就收消息的线程 几大对象分别是 IPEndPoint IP终结点 服务端Socket,绑定终结点Bind,启动监听L ...

  8. C# Winform 通过Socket实现客户端和服务端TCP通信

    操作界面如下: 1.声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议 Socket socket = new Socket(AddressFamily.Inte ...

  9. 在Java中使用Socket模拟客户端和服务端(多线程)

    1:Socket与ServerSocket的交互 2.Socket和ServerSocket介绍 Socket 构造函数 Socket() Socket(InetAddress address, in ...

  10. c++ Socket客户端和服务端示例版本二

    客户端 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/soc ...

随机推荐

  1. Selenium CHANGELOG[最新版本4.8.0 计划中]

    Selenium CHANGELOG[持续更新] 源文件 https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES 搬运工 对重点版本做 ...

  2. python自动发布-优化版本

    import sys import time import os import paramiko from pygments.lexers import shell baseconfig = { &q ...

  3. 多人协同开发,git workflow 提高团队协作能力

    集美们,还在为工作多年而只会使用简单的git指令被质疑是假简历而烦恼吗. Don't worry! || 今天给带来大家一个git攻略指南.成为大手子,参与开源大项目指日可待‍‍‍. . Git 这是 ...

  4. day11-JSON处理和HttpMessageConverter<T>

    JOSN处理和HttpMessageConverter 1.JSON处理-@ResponseBody 说明:在实际开发中,我们往往需要服务器返回的数据都是 JSON 格式. SpringMVC 提供了 ...

  5. Serverless Streaming:毫秒级流式大文件处理探秘

    摘要:本文将以图片处理的场景作为例子详细描述当前的问题以及华为云FunctionGraph函数工作流在面对该问题时采取的一系列实践. 文章作者|旧浪:华为云Serverless研发专家.平山:华为云中 ...

  6. ONES 对话 Eolink :数字化企业连接世界的第一接口

    Eolink Eolink 的创业方向是一次无心插柳. 在 Eolink 创办之前,创始人刘昊臻先后参与了技术外包.在线医疗.O2O 电商等创业项目,但是觉得不太符合自己的期望. 2015 年底,刘昊 ...

  7. Vulhub 漏洞学习之:Adobe ColdFusion

    Vulhub 漏洞学习之:Adobe ColdFusion 目录 Vulhub 漏洞学习之:Adobe ColdFusion 1 Adobe ColdFusion 文件读取漏洞(CVE-2010-28 ...

  8. Cobalt Strike 之: Aggressor Script

    郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. Co ...

  9. 怎么下载blob视频 .mu38视频下载转换格式

    首先获取视频m3u8地址 浏览器按 F12进入开发者模式 选择 Network 搜索.m3u8 RequestURL 获取视频url m3u8文件介绍 M3U(Moving Picture Exper ...

  10. cximage总括功能讲解

    CxImage的功能 Constructors  构造函数 Initialization  初始化 File 文件操作,主要是编解码 Generic 图像基本变化 DSP 图像处理操作 Paintin ...