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

图片为 140K, 1.jgp

1. 服务端

  1.  
  2.  1 using System;
  3.  2 using System.Collections.Generic;
  4.  3 using System.Text;
  5.  4 using System.Net.Sockets;
  6.  5 using System.Net;
  7.  6 using System.IO;
  8.  7 
  9.  8 namespace ConsoleApplication1
  10.  9 {
  11. 10     class Program
  12. 11     {
  13. 12         static void Main(string[] args)
  14. 13         {
  15. 14             // 1.创建套节字
  16. 15             Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  17. 16 
  18. 17             // 2.填充IP
  19. 18             IPAddress ip = IPAddress.Parse("127.0.0.1");
  20. 19             IPEndPoint ipe = new IPEndPoint(ip, 4321);
  21. 20 
  22. 21             // 3.绑定
  23. 22             sListen.Bind(ipe);
  24. 23 
  25. 24             // 4.监听
  26. 25             Console.WriteLine("服务正在监听...");
  27. 26             sListen.Listen(2);
  28. 27 
  29. 28             // 5.循环接受客户的连接请求
  30. 29             while (true)
  31. 30             {
  32. 31                 Socket clientSocket;
  33. 32                 try
  34. 33                 {
  35. 34                     clientSocket = sListen.Accept();
  36. 35                 }
  37. 36                 catch
  38. 37                 {
  39. 38                     throw;
  40. 39                 }
  41. 40 
  42. 41                 // 向客户端发送数据
  43. 42                 //clientSocket.Send(Encoding.Unicode.GetBytes("我是服务器, 你好呀!!!!"));
  44. 43 
  45. 44                 // 发送文件
  46. 45                 byte[] buffer = ReadImageFile("1.jpg");
  47. 46                 clientSocket.Send(buffer, buffer.Length, SocketFlags.None);
  48. 47                 Console.WriteLine("发送成功!");
  49. 48             }
  50. 49         }
  51. 50 
  52. 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.  
  2.  1 using System;
  3.  2 using System.Collections.Generic;
  4.  3 using System.Text;
  5.  4 using System.Net.Sockets;
  6.  5 using System.Net;
  7.  6 using System.IO;
  8.  7 
  9.  8 namespace ConsoleApplication2
  10.  9 {
  11. 10     class Program
  12. 11     {
  13. 12         static void Main(string[] args)
  14. 13         {
  15. 14             // 1.创建套节字
  16. 15             Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  17. 16 
  18. 17             // 2.填写远程IP
  19. 18             IPAddress ip = IPAddress.Parse("127.0.0.1");
  20. 19             IPEndPoint ipe = new IPEndPoint(ip, 4321);
  21. 20 
  22. 21             Console.WriteLine("开始连接服务....");
  23. 22             // 3.连接服务器
  24. 23             s.Connect(ipe);
  25. 24 
  26. 25             // 4.接收数据
  27. 26             byte[] buffer = new byte[1000000];
  28. 27             s.Receive(buffer, buffer.Length, SocketFlags.None);
  29. 28             //var msg = Encoding.Unicode.GetString(buffer);
  30. 29             //Console.WriteLine("接收消息: {0}", msg);
  31. 30             Console.WriteLine("接收成功");
  32. 31 
  33. 32             FileStream fs =  File.Create("1.jpg");
  34. 33             fs.Write(buffer, 0, buffer.Length);
  35. 34             fs.Close();
  36. 35 
  37. 36             Console.ReadKey();
  38. 37         }
  39. 38     }
  40. 39 }
  41. 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. python 安装scrapy

    1. 首先你先得安装PYTHON...还是推荐2.7吧,之前装了3.3似乎和这个世界格格不入...先装个2.7. 并将python加入系统的环境变量. 2. 去scrapy 官网下载最新版本的scra ...

  2. verilog运算符及表达式

    1.运输符 算术运算符(+,-,X,/,%) 赋值运算符(=,<=) 关系运算符(>,<,>=,<=) 逻辑运算符(&&,||,!)//与或非 条件运算符 ...

  3. 邻接表实现Dijkstra算法以及DFS与BFS算法

    //============================================================================ // Name : ListDijkstr ...

  4. 【笔记】ASP.NET MVC Model元数据

    问题1:什么叫Model元数据? Model元数据,是针对数据类型的一种描述信息.由于复杂类型(或者说类型嵌套的存在,比如CustomerModel中有一个属性为复杂类型Address)的存在,因此M ...

  5. 【CentOs】搭建svn服务器

    参考资料: svn攻略: http://blog.csdn.net/colinchan/article/details/1865154 错误解决:http://hi.baidu.com/anglem/ ...

  6. 【BZOJ】【4034】【HAOI2015】T2

    树链剖分/dfs序 树上单点修改+子树修改+链查询 其实用dfs序做也可以…… 其实树链剖分就是一个特殊的dfs序嘛= =所以树链剖分也可以搞子树-(Orz ZYF) 至于为什么……你看在做剖分的时候 ...

  7. Effective Java总结

    规则1. 用静态工厂方法代替构造器 例子: public class Example { } public class StaticFactory { //valueOf/Of/getInstance ...

  8. IIS Express 一个网站配置多个 域名

      在配置localhost和IP都可以访问:   方法1: applicationhost.config文件配置: <bindings>   <binding protocol=& ...

  9. CSS兼容问题大全

    1.chorme 最小字体的兼容性. 问题描述:ff和IE最小字体可设置为1px,可是chorme中文版最小字体是12px,小于12px的字体全部显示为12px.解决方案:chorme支持CSS3的, ...

  10. c3p0 --2

    c3p0号称是java界最好的数据池. c3p0的配置方式分为三种,分别是 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p ...