資源簡介
設計在線網絡售票程序。多人在多臺售票機(客戶端)上通過網絡買票,要求如下:
總票數(>5000)存儲在服務器端,各個客戶端通過TCP協議將買票數(<100)發送到服務器。
服務器可以同時監聽多個客戶端的買票請求并執行。
如果售票數量超過現有票數,則這次售票被拒絕,服務器將拒絕信息發給客戶端。
服務器顯示各個連接的客戶端的IP地址和端口號,買票數量及每次買票后的余票。
為了各個客戶端的同步,要求用lock語句對服務器端的賣票代碼加鎖。
客戶端顯示買票前后的服務器剩余總票數。

代碼片段和文件信息
using?System;
using?System.Text;
using?System.Net.Sockets;
using?System.Net;
namespace?shiyan3_SocketClient_91403090101
{
????class?Program
????{
????????private?static?byte[]?result?=?new?Byte[1024];
????????static?void?Main(string[]?args)
????????{
????????????int?tmp;//用于判斷輸入的數字
????????????String?input;//用于判斷是否退出程序
????????????//服務器IP地址
????????????IPAddress?ip?=?IPAddress.Parse(“127.0.0.1“);
????????????Socket?clientSocket?=?new?Socket(AddressFamily.InterNetwork?SocketType.Stream?ProtocolType.Tcp);
????????????try
????????????{
????????????????clientSocket.Connect(new?IPEndPoint(ip?8012));
????????????????Console.WriteLine(“連接服務器成功“);
????????????}
????????????catch
????????????{
????????????????Console.WriteLine(“連接服務器失敗請按回車鍵退出“);
????????????????return;
????????????}
????????????//通過clientSocket接收數據
????????????int?receiveLength?=?clientSocket.Receive(result);
????????????Console.WriteLine(“\n“?+?“服務器剩余票數:“?+?Encoding.Unicode.GetString(result?0?receiveLength));
????????L1:?Console.Write(“請輸入需要購買的票數:“);
????????????String?piao?=?Console.ReadLine();//piao:購買的票數
????????????//判斷是否輸入正確
????????????if?(!int.TryParse(piao?out?tmp))
????????????{
????????????????Console.WriteLine(“\n/***請輸入數字***/\n“);
????????????????goto?L1;
????????????}
????????????else?if?(int.Parse(piao)?1?||?int.Parse(piao)?>?100)
????????????{
????????????????Console.WriteLine(“\n/***至少購買1張票,最多購買100張票***/\n“);
????????????????goto?L1;
????????????}
????????????//?通過clientSocket發送數據
????????????try
????????????{
????????????????clientSocket.Send(Encoding.Unicode.GetBytes(piao));
????????????????Console.WriteLine(“正在提交......“);
????????????????receiveLength?=?clientSocket.Receive(result);
????????????????Console.WriteLine(“\n“?+?Encoding.Unicode.GetString(result?0?receiveLength)?+?“\n“);
????????????????Console.WriteLine(“/***是否還要繼續購票***/\n“?+?“\n?輸入任意鍵繼續購票???\n“退出”:請輸入N“);
????????????????Console.Write(“輸入:“);
????????????????input?=?Console.ReadLine().ToString();
????????????????if?(input?==?“N“?||?input?==?“n“)
????????????????{
????????????????????clientSocket.Send(Encoding.Unicode.GetBytes(input));
????????????????????return;
????????????????}
????????????????else
????????????????{
????????????????????clientSocket.Send(Encoding.Unicode.GetBytes(input));
????????????????????goto?L1;
????????????????}
????????????}
????????????catch
????????????{
????????????????Console.WriteLine(“\n/***服務器失去連接***/\n“);
????????????}
????????}
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6144??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\bin\Debug\shiyan3_SocketClient_91403090101.exe
?????文件??????13824??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\bin\Debug\shiyan3_SocketClient_91403090101.pdb
?????文件??????11600??2016-11-27?21:08??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\bin\Debug\shiyan3_SocketClient_91403090101.vshost.exe
?????文件????????490??2015-10-22?09:54??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\bin\Debug\shiyan3_SocketClient_91403090101.vshost.exe.manifest
?????文件???????6053??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????1755??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\obj\x86\Debug\shiyan3_SocketClient_91403090101.csproj.FileListAbsolute.txt
?????文件???????6144??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\obj\x86\Debug\shiyan3_SocketClient_91403090101.exe
?????文件??????13824??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\obj\x86\Debug\shiyan3_SocketClient_91403090101.pdb
?????文件???????2829??2016-11-27?21:07??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\Program.cs
?????文件???????1396??2016-11-22?14:57??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\Properties\AssemblyInfo.cs
?????文件???????2485??2016-11-22?14:57??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101.csproj
?????文件????????938??2016-11-22?14:57??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101.sln
????..A..H.?????19456??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101.suo
?????文件???????7168??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\bin\Debug\shiyan3_SocketSever_91403090101.exe
?????文件??????13824??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\bin\Debug\shiyan3_SocketSever_91403090101.pdb
?????文件??????11600??2016-11-27?20:58??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\bin\Debug\shiyan3_SocketSever_91403090101.vshost.exe
?????文件????????490??2015-10-22?09:54??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\bin\Debug\shiyan3_SocketSever_91403090101.vshost.exe.manifest
?????文件???????6049??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????1729??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\obj\x86\Debug\shiyan3_SocketSever_91403090101.csproj.FileListAbsolute.txt
?????文件???????7168??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\obj\x86\Debug\shiyan3_SocketSever_91403090101.exe
?????文件??????13824??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\obj\x86\Debug\shiyan3_SocketSever_91403090101.pdb
?????文件???????5062??2016-11-27?21:10??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\Program.cs
?????文件???????1394??2016-11-22?14:59??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\Properties\AssemblyInfo.cs
?????文件???????2483??2016-11-22?14:59??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101.csproj
?????文件????????935??2016-11-22?14:59??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101.sln
????..A..H.?????19456??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101.suo
?????目錄??????????0??2016-11-22?14:57??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\obj\x86\Debug\TempPE
?????目錄??????????0??2016-11-22?14:59??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\obj\x86\Debug\TempPE
?????目錄??????????0??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketClient_91403090101\shiyan3_SocketClient_91403090101\obj\x86\Debug
?????目錄??????????0??2016-11-27?21:11??shiyan3_91403090101\shiyan3_SocketSever_91403090101\shiyan3_SocketSever_91403090101\obj\x86\Debug
............此處省略18個文件信息
- 上一篇:C#坦克大戰源代碼全部用C#編寫
- 下一篇:根據出生日期獲取星座和生肖,農歷等信息
評論
共有 條評論