现在来传一个图片看看, 改改程序, 看看服务端

图片为 140K, 1.jgp

1. 服务端


 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.Net.Sockets;
 5 using System.Net;
 6 using System.IO;
 7 
 8 namespace ConsoleApplication1
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             // 1.创建套节字
15             Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
16 
17             // 2.填充IP
18             IPAddress ip = IPAddress.Parse("127.0.0.1");
19             IPEndPoint ipe = new IPEndPoint(ip, 4321);
20 
21             // 3.绑定
22             sListen.Bind(ipe);
23 
24             // 4.监听
25             Console.WriteLine("服务正在监听...");
26             sListen.Listen(2);
27 
28             // 5.循环接受客户的连接请求
29             while (true)
30             {
31                 Socket clientSocket;
32                 try
33                 {
34                     clientSocket = sListen.Accept();
35                 }
36                 catch
37                 {
38                     throw;
39                 }
40 
41                 // 向客户端发送数据
42                 //clientSocket.Send(Encoding.Unicode.GetBytes("我是服务器, 你好呀!!!!"));
43 
44                 // 发送文件
45                 byte[] buffer = ReadImageFile("1.jpg");
46                 clientSocket.Send(buffer, buffer.Length, SocketFlags.None);
47                 Console.WriteLine("发送成功!");
48             }
49         }
50 
51         private static byte[] ReadImageFile(string img)52         {53             FileInfo fileInfo = new FileInfo(img);54             byte[] buf = new byte[fileInfo.Length];55             FileStream fs = new FileStream(img, FileMode.Open, FileAccess.Read);56             fs.Read(buf, 0, buf.Length);57             fs.Close();58             //fileInfo.Delete();59             GC.ReRegisterForFinalize(fileInfo);60             GC.ReRegisterForFinalize(fs);61             return buf;62         }63 64     }65 }66 

2. 客户端


 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.Net.Sockets;
 5 using System.Net;
 6 using System.IO;
 7 
 8 namespace ConsoleApplication2
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             // 1.创建套节字
15             Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
16 
17             // 2.填写远程IP
18             IPAddress ip = IPAddress.Parse("127.0.0.1");
19             IPEndPoint ipe = new IPEndPoint(ip, 4321);
20 
21             Console.WriteLine("开始连接服务....");
22             // 3.连接服务器
23             s.Connect(ipe);
24 
25             // 4.接收数据
26             byte[] buffer = new byte[1000000];
27             s.Receive(buffer, buffer.Length, SocketFlags.None);
28             //var msg = Encoding.Unicode.GetString(buffer);
29             //Console.WriteLine("接收消息: {0}", msg);
30             Console.WriteLine("接收成功");
31 
32             FileStream fs =  File.Create("1.jpg");
33             fs.Write(buffer, 0, buffer.Length);
34             fs.Close();
35 
36             Console.ReadKey();
37         }
38     }
39 }
40 

哈哈, 就这样成了,,,,看看在客户端下会生成 1.jpg

C# Socket 入门2(转)的更多相关文章

  1. 从Socket入门到BIO,NIO,multiplexing,AIO

    Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...

  2. 从Socket入门到BIO,PIO,NIO,multiplexing,AIO(未完待续)

    Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...

  3. python笔记-9(subprocess模块、面向对象、socket入门)

    一.subprocess 模块 1.了解os.system()与os.popen的区别及不足 1.1 os.system()可以执行系统指令,将结果直接输出到屏幕,同时可以将指令是否执行成功的状态赋值 ...

  4. C++ Socket 入门

    Socket 入门 前置知识 :计算机网络基础(TCP/IP四层模型) Socket 原意是"插座",在计算机通信领域被翻译为"套接字",以\(\{IP:Por ...

  5. Socket 入门- 客户端回射程序

    结果输出:------------------------------------------------------客户端:xx@xxxxxx:~/Public/C$ ./postBackCli.o ...

  6. Socket入门Demo

    一.简单介绍下Socket编程    申明:.net网络编程 1)什么是Socket编程? Socket编程就是常说的网络通讯编程,套接字编程.一般应用于软件聊天通讯,以及软件与硬件之间的通讯. 通熟 ...

  7. socket入门基础

    #/usr/bin/python #-*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1',111) #创建socket对象 sk = so ...

  8. socket入门

    结构图如下 一个套接字就是socket模块中的socket类的一个实例.实例化时需要3个参数 地址族:默认(socket.AF_INET) 流:默认(socket.SOCK_STREAM)  或数据报 ...

  9. Socket入门-获取服务器时间实例

    daytimetcpsrv.c #include <stdio.h> #include <string.h> #include <stdlib.h> #includ ...

  10. C# Socket 入门4 UPD 发送结构体(转)

    今天我们来学 socket  发送结构体 1. 先看要发送的结构体 using System; using System.Collections.Generic; using System.Text; ...

随机推荐

  1. C#的winform矩阵简单运算

    C#的winform矩阵简单运算 程序截图 关键代码 using System; using System.Collections.Generic; using System.ComponentMod ...

  2. pb datawindow 判断是否是最后一列最后一行

    li_column1 = GetColumn() ls_columnname = GetColumnName() Send(Handle(This),,,Long(,)) ll_row2 = GetR ...

  3. iptables规则表

    1.iptables规则表 Filter(针对过滤系统):INPUT.FORWARD.OUTPUT NAT(针对地址转换系统):PREROUTING.POSTROUTING.INPUT.OUTPUT ...

  4. 在Eclipse中制作SSH配置文件提示插件

    原文地址:http://blog.csdn.net/longyuhome/article/details/8968093 这篇博客算是对原先的“在Eclipse中制作和使用struts2配置文件提示插 ...

  5. timersmanager 解析

    最近在看crtmp源代码,看到timersmanager 模块时感觉很难理解,花了不少时间反复思考该模块 的逻辑,现在思考的结果记录下来,方便以后查阅. 构造函数中将处理时间方法传进来,将_lastT ...

  6. yield curve

    1. A yield curve can be built using deposit rates, swap rates, and future/forward rates 2. A par-cou ...

  7. 剑指offer--21题

    #include "stdafx.h" #include<iostream>using namespace std; void LeftRotateString(cha ...

  8. mongo 1067错误

    对mongo进行错误的操作导致mongo服务异常关闭,当重启mongo服务时出现1067错误此时在data目录下产生mongod.lock文件,可以讲此文件删除,然后重启就可以了 Please mak ...

  9. [百度空间] [原]跨平台编程注意事项(二): windows下 x86到x64的移植

    之前转的: 将程序移植到64位Windows 还有自己乱写的一篇: 跨平台编程注意事项(一) 之前对于x64平台的移植都是纸上谈兵,算是前期准备工作, 但起码在写代码时,已经非常注意了.所以现在移植起 ...

  10. Codeforces Round #364 (Div. 2)->A. Cards

    A. Cards time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...