資源簡(jiǎn)介
本代碼分別提供了基于Socket 做的即時(shí)通信實(shí)例的客戶端和服務(wù)器端。代碼結(jié)構(gòu)清晰,注釋明了。適合Socket入門學(xué)習(xí),調(diào)試使用,以及Demo的二次開(kāi)發(fā)。

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