C# Socket 入门2(转)
现在来传一个图片看看, 改改程序, 看看服务端
图片为 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(转)的更多相关文章
- 从Socket入门到BIO,NIO,multiplexing,AIO
Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...
- 从Socket入门到BIO,PIO,NIO,multiplexing,AIO(未完待续)
Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...
- python笔记-9(subprocess模块、面向对象、socket入门)
一.subprocess 模块 1.了解os.system()与os.popen的区别及不足 1.1 os.system()可以执行系统指令,将结果直接输出到屏幕,同时可以将指令是否执行成功的状态赋值 ...
- C++ Socket 入门
Socket 入门 前置知识 :计算机网络基础(TCP/IP四层模型) Socket 原意是"插座",在计算机通信领域被翻译为"套接字",以\(\{IP:Por ...
- Socket 入门- 客户端回射程序
结果输出:------------------------------------------------------客户端:xx@xxxxxx:~/Public/C$ ./postBackCli.o ...
- Socket入门Demo
一.简单介绍下Socket编程 申明:.net网络编程 1)什么是Socket编程? Socket编程就是常说的网络通讯编程,套接字编程.一般应用于软件聊天通讯,以及软件与硬件之间的通讯. 通熟 ...
- socket入门基础
#/usr/bin/python #-*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1',111) #创建socket对象 sk = so ...
- socket入门
结构图如下 一个套接字就是socket模块中的socket类的一个实例.实例化时需要3个参数 地址族:默认(socket.AF_INET) 流:默认(socket.SOCK_STREAM) 或数据报 ...
- Socket入门-获取服务器时间实例
daytimetcpsrv.c #include <stdio.h> #include <string.h> #include <stdlib.h> #includ ...
- C# Socket 入门4 UPD 发送结构体(转)
今天我们来学 socket 发送结构体 1. 先看要发送的结构体 using System; using System.Collections.Generic; using System.Text; ...
随机推荐
- 扒一扒编辑距离(Levenshtein Distance)算法
最近由于工作需要,接触了编辑距离(Levenshtein Distance)算法.赶脚很有意思.最初百度了一些文章,但讲的都不是很好,读起来感觉似懂非懂.最后还是用google找到了一些资料才慢慢理解 ...
- EF6 在原有数据库中使用 CodeFirst 总复习(四、新建实体对象)
在原有数据库中使用 CodeFirst ,除了第一次添加实体后要立即执行一次 Enable-Migrations add-migration Initial -IgnoreChanges updat ...
- ultraedit高亮显示设置
ultraedit高亮显示设置 | 浏览:2333 | 更新:2014-02-20 23:05 1 2 3 4 5 6 7 分步阅读 百度经验:jingyan.baidu.com 写代码的人对ultr ...
- 为SM30视图分配事务代码
Tcode:SE93
- [vsftp服务]——ftp虚拟用户、权限设置等的实验
搭建ftp服务器,满足以下要求: 1.允许匿名用户登录服务器并下载文件,下载速度设置为最高2MB/s 2.不允许本地用户登录ftp服务器 3.在服务器添加虚拟用户vuser01.vuser02.vus ...
- AppDelegate中的方法解析
// 当应用程序启动完毕的时候就会调用(系统自动调用) -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOp ...
- c语言编程之二叉排序树
二叉排序树,又称为二叉查找树.它是一颗空树,或者是具有下面的性质的二叉树: 1.若它的左子树不空,则左子树上所有节点的值均小于它的根结构的值: 2.若它的右子树不空,则右子树上所有节点的值均大于它的根 ...
- android开发 drawtext的开始坐标位置
我们canvas绘制文字的遇到一个不知道drawtext(str,x,y,paint) 中的x.y坐标值怎么定义,,如果设为(0,0)的话文字就不会出来了.因此查找到一下资料: 问:canvas.d ...
- android开发 textview根据字数长度自动调整字体大小
需求:根据输入的值实时显示到textview中预览,但是字体大小是要自动适配的 网上有一个代码,但是在我这里不能用,注意方法:refitText 注释掉的是之前的代码 import com.cars ...
- Matlab绘制透明平面(二元函数)
一.需求来源 对空间结构聚类,恰好是圆台,找到了上下底面的方程,所以画图. 二.需求解决 2.1 绘制平面 x = linspace(0,5,100); y = linspace(0,4,100); ...