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();
}
catch (Exception ex)
{
string s = ex.ToString();
return;
}
}
}
}
//csharp/6885