设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 1696|回复: 0

C# 通过Socket上传并保存图片的代码

[复制链接]

签到天数: 36 天

[LV.5]常住居民I

发表于 2016/10/15 16:43 | 显示全部楼层 |阅读模式 |Google Chrome 45.0.2454.101|Windows 7
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
  C# 通过Socket上传并保存图片的代码

  string filename = openFile.FileName;即返回带全路径的文件名 Path.GetFileNameWithoutExtension(filename)即可获得不带路径、后缀名的文件名。 上传图片使用二进制 tcp协议上传的 客户端代码

  using System;

  using System.Collections.Generic;

  using System.ComponentModel;

  using System.Data;

  using System.Drawing;

  using System.Linq;

  using System.Text;

  using System.Windows.Forms;

  using System.Net;

  using System.Net.Sockets;

  using System.Threading;

  using System.IO;

  namespace socketClient

  {

  public partial class Form1 : Form

  {

  Socket clientSocket;

  private static byte[] result = new byte[1024];

  public Form1()

  {

  InitializeComponent();

  }

  private void buttonBegin_Click(object sender, EventArgs e)

  {

  //设定服务器IP地址

  IPAddress ip = IPAddress.Parse("127.0.0.1");

  clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

  try

  {

  clientSocket.Connect(new IPEndPoint(ip, 8000)); //配置服务器IP与端口

  }

  catch

  {

  MessageBox.Show("连接服务器失败");

  return;

  }

  }

  private void buttonClose_Click(object sender, EventArgs e)

  {

  this.Close();

  }

  private void buttonSelect_Click(object sender, EventArgs e)

  {

  OpenFileDialog openFile = new OpenFileDialog();

  openFile.Filter = "图像文件(*.bmp;*.gif;*.jpg;*.jpeg;*.png)|*.bmp;*.gif;*.jpg;*.jpeg;*.png";

  openFile.Multiselect = false;

  if (openFile.ShowDialog() == DialogResult.OK)

  {

  textBox2.Text =openFile.FileName;

  }

  //string filename = openFile.FileName;

  //即返回带全路径的文件名

  //Path.GetFileNameWithoutExtension(filename)即可获得不带路径、后缀名的文件名。

  byte[] msg = Encoding.Default.GetBytes(Path.GetFileNameWithoutExtension(openFile.FileName));

  clientSocket.Send(msg);

  try

  {

  //开始使用socket发送文件

  FileStream fs = new FileStream(openFile.FileName, FileMode.OpenOrCreate, FileAccess.Read);

  byte[] fssize = new byte[fs.Length];

  BinaryReader strread = new BinaryReader(fs);

  strread.Read(fssize, 0, fssize.Length - 1);

  clientSocket.Send(fssize);

  fs.Close();

  clientSocket.Shutdown(System.Net.Sockets.SocketShutdown.Send);

  clientSocket.Close(http://www.9ask.cn/sjz/);

  }

  catch (Exception ex)

  {

  string s = ex.ToString();

  return;

  }

  }

  }

  }
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/11/26 19:44 , Processed in 0.131583 second(s), 20 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表