資源簡介
C#版的簡單socket——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.Sockets;
using?System.Net;
using?System.Threading;
namespace?Client
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????Socket?socketSend;
????????private?void?bt_connect_Click(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????//創建客戶端Socket,獲得遠程ip和端口號
????????????????socketSend?=?new?Socket(AddressFamily.InterNetwork?SocketType.Stream?ProtocolType.Tcp);
????????????????IPAddress?ip?=?IPAddress.Parse(txt_ip.Text);
????????????????IPEndPoint?point?=?new?IPEndPoint(ip?Convert.ToInt32(txt_port.Text));
????????????????socketSend.Connect(point);
????????????????ShowMsg(“連接成功!“);
????????????????//開啟新的線程,不停的接收服務器發來的消息
????????????????Thread?c_thread?=?new?Thread(Received);
????????????????c_thread.IsBackground?=?true;
????????????????c_thread.Start();
????????????}
????????????catch?(Exception)
????????????{
????????????????ShowMsg(“IP或者端口號錯誤...“);
????????????}
????????}
????????void?ShowMsg(string?str)
????????{
????????????textBox1.AppendText(str?+?“\r\n“);
????????}
????????///?
????????///?接收服務端返回的消息
????????///?
????????void?Received()
????????{
????????????while?(true)
????????????{
????????????????try
????????????????{
????????????????????byte[]?buffer?=?new?byte[1024?*?1024?*?3];
????????????????????//實際接收到的有效字節數
????????????????????int?len?=?socketSend.Receive(buffer);
????????????????????if?(len?==?0)
????????????????????{
????????????????????????break;
????????????????????}
????????????????????string?str?=?Encoding.UTF8.GetString(buffer?0?len);
????????????????????ShowMsg(socketSend.RemoteEndPoint?+?“:“?+?str);
????????????????}
????????????????catch?{?}
????????????}
????????}
????????///?
????????///?向服務器發送消息
????????///?
????????///?
????????///?
????????private?void?bt_send_Click(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????string?msg?=?txt_msg.Text.Trim();
????????????????byte[]?buffer?=?new?byte[1024?*?1024?*?3];
????????????????buffer?=?Encoding.UTF8.GetBytes(msg);
????????????????socketSend.Send(buffer);
????????????}
????????????catch?{?}
????????}
????????private?void?Form1_Load(object?sender?EventArgs?e)
????????{
????????????Control.CheckForIllegalCrossThreadCalls?=?false;
????????}
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10752??2018-08-17?10:35??socket_TCP\Client\Client\Client\bin\Debug\Client.exe
?????文件??????22016??2018-08-17?10:35??socket_TCP\Client\Client\Client\bin\Debug\Client.pdb
?????文件??????11600??2018-08-17?10:34??socket_TCP\Client\Client\Client\bin\Debug\Client.vshost.exe
?????文件????????490??2012-06-06?02:06??socket_TCP\Client\Client\Client\bin\Debug\Client.vshost.exe.manifest
?????文件???????3671??2018-08-17?10:33??socket_TCP\Client\Client\Client\Client.csproj
?????文件???????2843??2018-08-17?10:35??socket_TCP\Client\Client\Client\Form1.cs
?????文件???????6384??2018-08-17?10:35??socket_TCP\Client\Client\Client\Form1.Designer.cs
?????文件???????5817??2018-08-17?10:35??socket_TCP\Client\Client\Client\Form1.resx
?????文件????????631??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\Client.csproj.FileListAbsolute.txt
?????文件????????975??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\Client.csproj.GenerateResource.Cache
?????文件??????10752??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\Client.exe
?????文件????????180??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\Client.Form1.resources
?????文件??????22016??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\Client.pdb
?????文件????????180??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\Client.Properties.Resources.resources
?????文件???????2867??2018-08-17?10:31??socket_TCP\Client\Client\Client\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6356??2018-08-17?10:35??socket_TCP\Client\Client\Client\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????487??2018-08-17?10:31??socket_TCP\Client\Client\Client\Program.cs
?????文件???????1362??2018-08-17?10:31??socket_TCP\Client\Client\Client\Properties\AssemblyInfo.cs
?????文件???????2864??2018-08-17?10:31??socket_TCP\Client\Client\Client\Properties\Resources.Designer.cs
?????文件???????5612??2018-08-17?10:31??socket_TCP\Client\Client\Client\Properties\Resources.resx
?????文件???????1093??2018-08-17?10:31??socket_TCP\Client\Client\Client\Properties\Settings.Designer.cs
?????文件????????249??2018-08-17?10:31??socket_TCP\Client\Client\Client\Properties\Settings.settings
?????文件????????860??2018-08-17?10:31??socket_TCP\Client\Client\Client.sln
????..A..H.?????19456??2018-08-17?10:35??socket_TCP\Client\Client\Client.suo
?????文件??????11264??2018-08-17?10:35??socket_TCP\Sever\Sever\Sever\bin\Debug\Sever.exe
?????文件??????24064??2018-08-17?10:35??socket_TCP\Sever\Sever\Sever\bin\Debug\Sever.pdb
?????文件??????11600??2018-08-17?10:34??socket_TCP\Sever\Sever\Sever\bin\Debug\Sever.vshost.exe
?????文件????????490??2012-06-06?02:06??socket_TCP\Sever\Sever\Sever\bin\Debug\Sever.vshost.exe.manifest
?????文件???????3714??2018-08-17?10:35??socket_TCP\Sever\Sever\Sever\Form1.cs
?????文件???????6435??2018-08-17?10:35??socket_TCP\Sever\Sever\Sever\Form1.Designer.cs
............此處省略43個文件信息
評論
共有 條評論