資源簡介
基于VS開發環境,使用C#開發語言。C#窗體TCP/IP的Socket多線程通信,互發消息,傳輸文件。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
using?System.Net.Sockets;
using?System.Net;
using?System.Threading;
using?System.IO;
namespace?IOTClient
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????????TextBox.CheckForIllegalCrossThreadCalls?=?false;
????????}
????????private?void?Form1_Load(object?sender?EventArgs?e)
????????{
????????}
????????Socket?sokClient?=?null;//負責與服務端通信的套接字
????????Thread?threadClient?=?null;//負責?監聽?服務端發送來的消息的線程
????????bool?isRec?=?true;//是否循環接收服務端數據
????????private?void?btnConnect_Click(object?sender?EventArgs?e)
????????{
????????????//實例化?套接字
????????????sokClient?=?new?Socket(AddressFamily.InterNetwork?SocketType.Stream?ProtocolType.Tcp);
????????????//創建?ip對象
????????????IPAddress?address?=?IPAddress.Parse(txtIP.Text.Trim());
????????????//創建網絡節點對象?包含?ip和port
????????????IPEndPoint?endpoint?=?new?IPEndPoint(address?int.Parse(txtPort.Text.Trim()));
????????????//連接?服務端監聽套接字
????????????sokClient.Connect(endpoint);
????????????//創建負責接收?服務端發送來數據的?線程
????????????threadClient?=?new?Thread(ReceiveMsg);
????????????threadClient.IsBackground?=?true;
????????????//如果在win7下要通過?某個線程?來調用?文件選擇框的代碼,就需要設置如下
????????????threadClient.SetApartmentState(ApartmentState.STA);
????????????threadClient.Start();
????????}
????????///?
????????///?接收服務端發送來的消息數據
????????///?
????????void?ReceiveMsg()
????????{
????????????while?(isRec)
????????????{
????????????????byte[]?msgArr?=?new?byte[1024?*?1024?*?1];//接收到的消息的緩沖區
????????????????int?length?=?0;
????????????????//接收服務端發送來的消息數據
????????????????length?=?sokClient.Receive(msgArr);//Receive會阻斷線程
????????????????if?(msgArr[0]?==?0)//發送來的是文字
????????????????{
????????????????????string?strMsg?=?System.Text.Encoding.UTF8.GetString(msgArr?1?length?-?1);
????????????????????txtShow.AppendText(strMsg?+?“\r\n“);
????????????????}
????????????????else?if?(msgArr[0]?==?1)
????????????????{?//發送來的是文件
????????????????????SaveFileDialog?sfd?=?new?SaveFileDialog();
????????????????????//彈出文件保存選擇框
????????????????????if?(sfd.ShowDialog()?==?System.Windows.Forms.DialogResult.OK)
????????????????????{
????????????????????????//創建文件流
????????????????????????using?(FileStream?fs?=?new?FileStream(sfd.FileName?FileMode.OpenOrCreate))
????????????????????????{
????????????????????????????fs.Write(msgArr?1?length?-?1);
????????????????????????????MessageBox.Show(“文件保存成功!“);
????????????????????????}
????????????????????}
????????????????}
????????????????else?if?(msgArr[0]?==?2)
????????????????{
????????????????????ShakeWindow();
????????????????}
????????????}
????????}
????????///?
????????///?閃屏
????????///?
????????private?void?ShakeWindow()
????????{
????????????Rand
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4194??2012-04-11?20:39??TCPIP\Client\Backup\IOTClient\Form1.cs
?????文件???????5578??2012-04-11?20:39??TCPIP\Client\Backup\IOTClient\Form1.Designer.cs
?????文件???????5814??2012-04-11?20:39??TCPIP\Client\Backup\IOTClient\Form1.resx
?????文件???????3225??2012-04-11?20:22??TCPIP\Client\Backup\IOTClient\IOTClient.csproj
?????文件????????468??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient\Program.cs
?????文件???????1190??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient\Properties\AssemblyInfo.cs
?????文件???????2872??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient\Properties\Resources.Designer.cs
?????文件???????5612??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient\Properties\Resources.resx
?????文件???????1092??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient\Properties\Settings.Designer.cs
?????文件????????249??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient\Properties\Settings.settings
?????文件????????916??2012-04-11?20:17??TCPIP\Client\Backup\IOTClient.sln
????..A..H.?????13312??2012-04-11?20:56??TCPIP\Client\Backup\IOTClient.v12.suo
?????文件??????11776??2018-04-14?10:15??TCPIP\Client\IOTClient\bin\Debug\IOTClient.exe
?????文件??????30208??2018-04-14?10:15??TCPIP\Client\IOTClient\bin\Debug\IOTClient.pdb
?????文件??????22704??2018-04-14?10:17??TCPIP\Client\IOTClient\bin\Debug\IOTClient.vshost.exe
?????文件????????490??2016-03-09?13:48??TCPIP\Client\IOTClient\bin\Debug\IOTClient.vshost.exe.manifest
?????文件????????254??2018-04-07?21:45??TCPIP\Client\IOTClient\ConnectionClient.cs
?????文件???????4846??2018-04-14?10:15??TCPIP\Client\IOTClient\Form1.cs
?????文件???????6488??2018-04-12?21:07??TCPIP\Client\IOTClient\Form1.Designer.cs
?????文件???????5814??2018-04-12?20:51??TCPIP\Client\IOTClient\Form1.resx
?????文件???????3580??2018-04-07?21:44??TCPIP\Client\IOTClient\IOTClient.csproj
?????文件???????1231??2018-04-07?21:38??TCPIP\Client\IOTClient\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6076??2018-04-12?20:32??TCPIP\Client\IOTClient\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????4226??2018-04-14?10:17??TCPIP\Client\IOTClient\obj\Debug\IOTClient.csproj.FileListAbsolute.txt
?????文件????????847??2018-04-12?20:51??TCPIP\Client\IOTClient\obj\Debug\IOTClient.csproj.GenerateResource.Cache
?????文件???????1341??2018-03-29?15:49??TCPIP\Client\IOTClient\obj\Debug\IOTClient.csprojResolveAssemblyReference.cache
?????文件??????11776??2018-04-14?10:15??TCPIP\Client\IOTClient\obj\Debug\IOTClient.exe
?????文件????????180??2018-04-12?20:51??TCPIP\Client\IOTClient\obj\Debug\IOTClient.Form1.resources
?????文件??????30208??2018-04-14?10:15??TCPIP\Client\IOTClient\obj\Debug\IOTClient.pdb
?????文件????????180??2018-04-07?21:44??TCPIP\Client\IOTClient\obj\Debug\IOTClient.Properties.Resources.resources
............此處省略83個文件信息
評論
共有 條評論