-
大小: 87KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-16
- 語言: C#
- 標(biāo)簽:
資源簡介
可進(jìn)行簡單的客戶端信息的接收,解析、轉(zhuǎn)發(fā),打印日志功能

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Threading.Tasks;
namespace?SocketTestForms
{
????class?Class1
????{
????????private?bool?LoginReceive(SocketState?state)
????????{
????????????try
????????????{
????????????????state.Socket.BeginReceive(state.Buffer?0?SocketState.BufferSize?SocketFlags.None?new?AsyncCallback(LogReceiveCallback)?state);
????????????}
????????????catch?(Exception?ex)//出現(xiàn)Socket異常就關(guān)閉連接?
????????????{
????????????????CloseSocket(state?ex);//這個函數(shù)用來關(guān)閉客戶端連接?
????????????????return?false;
????????????}
????????????return?true;
????????}
????????private?void?LogReceiveCallback(IAsyncResult?ar)
????????{
????????????SocketState?state?=?(SocketState)ar.AsyncState;
????????????Socket?handler?=?state.Socket;
????????????int?bytesRead?=?0;
????????????try
????????????{
????????????????bytesRead?=?handler.EndReceive(ar);
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????CloseSocket(state?ex);//這個函數(shù)用來關(guān)閉客戶端連接?
????????????????return;
????????????}
????????????if?(bytesRead?>?0)
????????????{
????????????????//處理接受的數(shù)據(jù)
????????????????byte[]?buffer?=?new?byte[bytesRead];
????????????????Buffer.BlockCopy(state.Buffer?0?buffer?0?bytesRead);
????????????????//Analyzer(state?buffer);//這個函數(shù)用來處理接收到的信息。
????????????????BeginReceive(state);
????????????}
????????????else
????????????{
????????????????CloseSocket(state?new?Exception(“0?byte?data?received!“));
????????????}
????????}
????????private?void?Analyzer(SocketState?state?byte[]?buffer)
????????{
????????????WriteLog(System.Text.Encoding.ASCII.GetString(buffer)?+?“recive?success!“);
????????????if?(buffer[0]?!=?‘*‘?||?buffer[buffer.Length?-?1]?!=?‘#‘)
????????????{
????????????????return;
????????????}
????????????var?bufferToString?=?System.Text.Encoding.ASCII.GetString(buffer);//將ASCII碼字節(jié)數(shù)組轉(zhuǎn)化為字符串
????????????string[]?strcmdSentence?=?byteToString4.Split(‘#‘);//將字符串按照逗號分開
????????????for?(int?k?=?0;?k?????????????{
????????????????Array.Copy(strcmdStence?1?bufferSentence?0?buffer.Length?-?1);
????????????????string[]?strcmdWord?=?bufferSentence[k].Split(““);
????????????}
????????????byte[]?buffer1?=?new?byte[buffer.Length?-?2];
????????????Array.Copy(buffer?1?buffer1?0?buffer.Length?-?2);
????????????var?byteToString4?=?System.Text.Encoding.ASCII.GetString(buffer1);//將ASCII碼字節(jié)數(shù)組轉(zhuǎn)化為字符串
????????????string[]?strdata?=?byteToString4.Split(‘‘);//將字符串按照逗號分開
????????????if?(strdata[0]?==?“REQ“)
????????????{
????????????????for?(int?i?=?0;?i?????????????????{
????????????????????SocketState?desState?=?(SocketState)_socketStates[i];
????????????????????if?(desState.SocketSrc?==?strdata[2])
????????????????????{
????????????????????????Send(state?System.Text.Encoding.Default.GetBytes(“*REF1,“?+?strdata[2]?+?““?+?strdata[3]?+?““?+?strdata[4]?+?“#“
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-22?10:31??SocketTestForms\
?????目錄???????????0??2017-09-19?17:49??SocketTestForms\SocketTestForms\
?????文件?????????935??2017-06-22?10:31??SocketTestForms\SocketTestForms.sln
?????文件???????94208??2017-10-10?12:42??SocketTestForms\SocketTestForms.v11.suo
?????文件?????????187??2017-06-22?10:31??SocketTestForms\SocketTestForms\App.config
?????目錄???????????0??2017-09-19?16:36??SocketTestForms\SocketTestForms\bin\
?????目錄???????????0??2017-09-22?10:05??SocketTestForms\SocketTestForms\bin\Debug\
?????文件?????????959??2017-09-08?10:10??SocketTestForms\SocketTestForms\bin\Debug\rizhi08.log
?????文件???????14848??2017-10-10?10:45??SocketTestForms\SocketTestForms\bin\Debug\SocketTestForms.exe
?????文件?????????187??2017-06-22?10:31??SocketTestForms\SocketTestForms\bin\Debug\SocketTestForms.exe.config
?????文件???????44544??2017-10-10?10:45??SocketTestForms\SocketTestForms\bin\Debug\SocketTestForms.pdb
?????文件???????22984??2017-10-10?09:39??SocketTestForms\SocketTestForms\bin\Debug\SocketTestForms.vshost.exe
?????文件?????????187??2017-06-22?10:31??SocketTestForms\SocketTestForms\bin\Debug\SocketTestForms.vshost.exe.config
?????文件?????????490??2012-06-06?02:06??SocketTestForms\SocketTestForms\bin\Debug\SocketTestForms.vshost.exe.manifest
?????目錄???????????0??2017-09-19?16:36??SocketTestForms\SocketTestForms\bin\Release\
?????文件????????7825??2017-09-20?18:55??SocketTestForms\SocketTestForms\Class1.cs
?????文件?????????772??2017-10-10?10:42??SocketTestForms\SocketTestForms\Form1.cs
?????文件????????1509??2017-07-08?18:24??SocketTestForms\SocketTestForms\Form1.Designer.cs
?????文件????????5817??2017-07-08?18:24??SocketTestForms\SocketTestForms\Form1.resx
?????目錄???????????0??2017-06-22?10:31??SocketTestForms\SocketTestForms\obj\
?????目錄???????????0??2017-10-10?10:45??SocketTestForms\SocketTestForms\obj\Debug\
?????文件????????1278??2017-06-22?11:00??SocketTestForms\SocketTestForms\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????6927??2017-09-20?09:21??SocketTestForms\SocketTestForms\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件?????????852??2017-10-10?09:39??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.csproj.FileListAbsolute.txt
?????文件?????????975??2017-09-22?10:05??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.csproj.GenerateResource.Cache
?????文件????????2143??2017-09-22?10:58??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.csprojResolveAssemblyReference.cache
?????文件???????14848??2017-10-10?10:45??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.exe
?????文件?????????180??2017-10-09?09:15??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.Form1.resources
?????文件???????44544??2017-10-10?10:45??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.pdb
?????文件?????????180??2017-10-09?09:15??SocketTestForms\SocketTestForms\obj\Debug\SocketTestForms.Properties.Resources.resources
?????文件???????????0??2017-06-22?10:31??SocketTestForms\SocketTestForms\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
............此處省略15個文件信息
評論
共有 條評論