資源簡介
本代碼分別提供了基于Socket 做的即時通信實例的客戶端和服務器端。代碼結構清晰,注釋明了。適合Socket入門學習,調試使用,以及Demo的二次開發。

代碼片段和文件信息
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;
namespace?Chat_Demo_Server
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????????Socket?socketSend;//負責發送信息的socket
?????????????//將遠程連接的客戶端的IP地址和Socket存入集合中??
?????????????Dictionary?dicSocket?=?new?Dictionary();??
????????///?
????????///?監測
????????///?
????????///?
????????///?
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????//當點擊開始監聽的時候?在服務器端創建一個負責監聽IP地址和端口號的Socket??
????????????????//addressFamily:?Socket:使用的尋址方案,socketType:Socket?的類型,protocolType:Socket?使用的協議。???????????
????????????????Socket?socketWatch?=?new?Socket(AddressFamily.InterNetwork?SocketType.Stream?ProtocolType.Tcp);
????????????????IPAddress?ip?=?IPAddress.Any;
????????????????//創建服務器端網絡端點對象??
????????????????IPEndPoint?point?=?new?IPEndPoint(ip?Convert.ToInt32(ProText.Text));
????????????????//偵聽Soket與本地終結點綁定??
????????????????socketWatch.Bind(point);
????????????????//設置為監聽狀態??
????????????????socketWatch.Listen(10);
????????????????ShowMsg(“監聽成功“);
????????????????//新建線程等待連接,創建通信Socket??
????????????????Thread?th?=?new?Thread(Listen);
????????????????th.IsBackground?=?true;//設置為后臺線程??
????????????????th.Start(socketWatch);
????????????}
????????????catch
????????????{
????????????}??
????????}
????????///?
????????///?發送消息
????????///?
????????///?
????????///?
????????private?void?button2_Click(object?sender?EventArgs?e)
????????{
????????????string?str?=?chatBoxSend.Text.Trim();
????????????byte[]?buf?=?Encoding.UTF8.GetBytes(str);
????????????List?byteList?=?new?List();
????????????//根據自定義的協議,發送的字節數組的第一位為0是表示發送的是文本??
????????????byteList.Add(0);
????????????byteList.AddRange(buf);
????????????//泛型集合轉換為新的數組??
????????????byte[]?newBuffer?=?byteList.ToArray();
????????????//獲取用戶在下拉框中的IP地址??
????????????try
????????????{
????????????????string?ip?=?cboUsers.SelectedItem.ToString();
????????????????dicSocket[ip].Send(newBuffer);
????????????????chatBoxSend.Text?=?““;
????????????}
????????????catch
????????????{
????????????}????????
????????}
??????
????????//
????????private?void?Listen(object?o)
????????{
????????????Socket?socketWatch?=?o?as?Socket;
????????????//循環目的在于使得多個客戶端可以連接服務器??
????????????while?(true)
????????????{
????????????????try
????????????????{
????????????????????//等待客戶端連接由偵聽的Socket創建一個負責與客戶端通信的Socket??
????????????????????socketSend?=?socketWatch.Accept();
???????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????44544??2019-03-09?14:17??Socket基礎框架\Server\.vs\Chat_Demo_Server\v15\.suo
?????文件??????11776??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\bin\Debug\Chat_Demo_Server.exe
?????文件??????24064??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\bin\Debug\Chat_Demo_Server.pdb
?????文件??????11600??2017-10-27?10:52??Socket基礎框架\Server\Chat_Demo_Server\bin\Debug\Chat_Demo_Server.vshost.exe
?????文件????????490??2010-03-17?22:39??Socket基礎框架\Server\Chat_Demo_Server\bin\Debug\Chat_Demo_Server.vshost.exe.manifest
?????文件???????3691??2017-10-26?17:39??Socket基礎框架\Server\Chat_Demo_Server\Chat_Demo_Server.csproj
?????文件???????5577??2017-10-27?10:53??Socket基礎框架\Server\Chat_Demo_Server\Form1.cs
?????文件???????5364??2017-10-27?10:29??Socket基礎框架\Server\Chat_Demo_Server\Form1.Designer.cs
?????文件???????5817??2017-10-27?10:29??Socket基礎框架\Server\Chat_Demo_Server\Form1.resx
?????文件???????1853??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.csproj.FileListAbsolute.txt
?????文件???????1012??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.csproj.GenerateResource.Cache
?????文件???????9177??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.csprojResolveAssemblyReference.cache
?????文件??????11776??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.exe
?????文件????????180??2017-10-27?10:29??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.Form1.resources
?????文件??????24064??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.pdb
?????文件????????180??2017-10-26?17:39??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\Chat_Demo_Server.Properties.Resources.resources
?????文件?????????42??2019-03-09?13:45??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\CoreCompileInputs.cache
?????文件???????2870??2019-03-09?13:46??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????7210??2019-03-09?13:45??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????264??2017-10-27?10:29??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\GenerateResource.read.1.tlog
?????文件????????662??2017-10-27?10:29??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\GenerateResource.write.1.tlog
?????文件???????8031??2017-10-27?09:31??Socket基礎框架\Server\Chat_Demo_Server\obj\x86\Debug\ResolveAssemblyReference.cache
?????文件????????497??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server\Program.cs
?????文件???????1382??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server\Properties\AssemblyInfo.cs
?????文件???????2883??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server\Properties\Resources.Designer.cs
?????文件???????5612??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server\Properties\Resources.resx
?????文件???????1102??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server\Properties\Settings.Designer.cs
?????文件????????249??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server\Properties\Settings.settings
?????文件????????890??2017-10-26?17:21??Socket基礎框架\Server\Chat_Demo_Server.sln
????..A..H.?????21504??2017-10-27?10:53??Socket基礎框架\Server\Chat_Demo_Server.suo
............此處省略57個文件信息
評論
共有 條評論