[C#] C# 通过Socket上传并保存图片的代码 →→→→→进入此内容的聊天室

来自 , 2019-07-07, 写在 C#, 查看 116 次.
URL http://www.code666.cn/view/33b879e7
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Net;
  10. using System.Net.Sockets;
  11. using System.Threading;
  12. using System.IO;
  13.  
  14.  
  15. namespace socketClient
  16. {
  17.     public partial class Form1 : Form
  18.     {
  19.         Socket clientSocket;
  20.         private static byte[] result = new byte[1024];
  21.        
  22.         public Form1()
  23.         {
  24.             InitializeComponent();
  25.         }
  26.        
  27.  
  28.         private void buttonBegin_Click(object sender, EventArgs e)
  29.         {
  30.             //设定服务器IP地址
  31.             IPAddress ip = IPAddress.Parse("127.0.0.1");
  32.             clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  33.             try
  34.             {
  35.                 clientSocket.Connect(new IPEndPoint(ip, 8000)); //配置服务器IP与端口
  36.             }
  37.             catch
  38.             {
  39.                 MessageBox.Show("连接服务器失败");
  40.  
  41.                 return;
  42.             }      
  43.         }
  44.  
  45.         private void buttonClose_Click(object sender, EventArgs e)
  46.         {
  47.             this.Close();
  48.         }
  49. private void buttonSelect_Click(object sender, EventArgs e)
  50.         {
  51.             OpenFileDialog openFile = new OpenFileDialog();
  52.             openFile.Filter = "图像文件(*.bmp;*.gif;*.jpg;*.jpeg;*.png)|*.bmp;*.gif;*.jpg;*.jpeg;*.png";
  53.             openFile.Multiselect = false;
  54.  
  55.             if (openFile.ShowDialog() == DialogResult.OK)
  56.             {
  57.                 textBox2.Text =openFile.FileName;
  58.             }
  59.             //string filename = openFile.FileName;
  60.             //即返回带全路径的文件名
  61.  
  62.             //Path.GetFileNameWithoutExtension(filename)即可获得不带路径、后缀名的文件名。
  63.             byte[] msg = Encoding.Default.GetBytes(Path.GetFileNameWithoutExtension(openFile.FileName));
  64.             clientSocket.Send(msg);
  65.  
  66.             try
  67.             {
  68.                 //开始使用socket发送文件
  69.                 FileStream fs = new FileStream(openFile.FileName, FileMode.OpenOrCreate, FileAccess.Read);
  70.                 byte[] fssize = new byte[fs.Length];
  71.                 BinaryReader strread = new BinaryReader(fs);
  72.                 strread.Read(fssize, 0, fssize.Length - 1);
  73.                 clientSocket.Send(fssize);
  74.                 fs.Close();
  75.  
  76.                 clientSocket.Shutdown(System.Net.Sockets.SocketShutdown.Send);
  77.                 clientSocket.Close();
  78.  
  79.             }
  80.             catch (Exception ex)
  81.             {
  82.                 string s = ex.ToString();
  83.                 return;
  84.             }
  85.         }
  86. }
  87. }
  88.  
  89.  
  90. //csharp/6885

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

这儿你可以回复上面这条便签

captcha