資源簡介
在研究C#IM的過程中,循序漸進的學習和研究C#網絡編程,寫成了本C#異步多線程文件傳輸和文字聊天系統,對剛剛學習網絡編程的人有一定的幫助,因為是練習作品,所以請大家莫拍磚。
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Net;
using?System.Net.Sockets;
using?System.IO;
namespace?Filetranser
{
????///?
????///?發送文件端
????///?
????class?FileClient
????{
????????public?string?FileName;
????????public?IPAddress?myIP;
????????public?int?myPort;
????????public?FileClient(string?_FileNameIPAddress?_myIPint?_myPort)
????????{
????????????FileName?=?_FileName;
????????????myIP?=?_myIP;
????????????myPort?=?_myPort;
????????}
????????public?void?Send()
????????{
????????????byte[]?myType?=?new?byte[255];
????????????byte[]?FileNameByte?=?new?byte[255];
????????????byte[]?ResultByte?=?new?byte[7];
????????????byte[]?FIleLength?=?new?byte[255];
????????????IPEndPoint?iep?=?new?IPEndPoint(myIP?myPort);
????????????Socket?myServer?=?new?Socket(AddressFamily.InterNetwork?SocketType.Stream?ProtocolType.Tcp);
????????????myServer.Connect(iep);
????????????for?(int?i?=?0;?i?????????????{
????????????????myType[i]?=?Encoding.UTF8.GetBytes(“FILE“)[i];
????????????}
????????????myServer.Send(myType);
????????????string?NewFileName?=?FileName.Substring(FileName.LastIndexOf(“\\“)?+?1?FileName.Length?-?FileName.LastIndexOf(“\\“)?-?1);
????????????for?(int?i?=?0;?i?????????????{
????????????????FileNameByte[i]?=?Encoding.UTF8.GetBytes(NewFileName)[i];
????????????}
????????????myServer.Send(FileNameByte);
????????????//獲得一個回復
????????????myServer.Receive(ResultByte?0?7?0);
????????????if?(Encoding.UTF8.GetString(ResultByte?0?7)?==?“ACCEPTS“)
????????????{
????????????????FileStream?fs?=?new?FileStream(FileName?FileMode.Open?FileAccess.Read);
????????????????byte[]?databyte?=?new?byte[(int)fs.Length];
???????????????
????????????????int?FsLength?=?(int)fs.Length;
????????????????Encoding.UTF8.GetBytes(FsLength.ToString()).CopyTo(FIleLength?0);
????????????????myServer.Send(FIleLength);
????????????????fs.Read(databyte?0?FsLength);
????????????????int?isSending?=?0;
????????????????int?isSended?=?0;
????????????????int?sendSize?=1024;
????????????????while?(isSended?????????????????{
????????????????????if?(isSended?+?sendSize?????????????????????{
????????????????????????isSending?=?sendSize;
????????????????????}
????????????????????else
????????????????????{
????????????????????????isSending?=?FsLength?-?isSended;
????????????????????}
???????????????????
???????????????????
????????????????????myServer.Send(databyte?isSended?isSending?0);
????????????????????isSended?+=?isSending;
????????????????????while?(true)
????????????????????{
????????????????????????byte[]?StatusOK?=?new?byte[2];
????????????????????????myServer.Receive(StatusOK?0?2?SocketFlags.None);
????????????????????????if?(Encoding.UTF8.GetString(StatusOK)?==?“OK“)
????????????????????????{
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14848??2010-01-18?10:51??Filetranser\Filetranser\bin\Debug\f
?????文件??????14848??2010-01-18?13:14??Filetranser\Filetranser\bin\Debug\Filetranser.exe
?????文件??????34304??2010-01-18?13:14??Filetranser\Filetranser\bin\Debug\Filetranser.pdb
?????文件??????14328??2010-01-18?13:17??Filetranser\Filetranser\bin\Debug\Filetranser.vshost.exe
?????文件????????490??2007-07-21?01:33??Filetranser\Filetranser\bin\Debug\Filetranser.vshost.exe.manifest
?????文件??????26707??2010-01-18?13:15??Filetranser\Filetranser\bin\Debug.rar
?????文件???????3252??2010-01-18?13:14??Filetranser\Filetranser\FileClient.cs
?????文件???????4015??2010-01-18?10:49??Filetranser\Filetranser\Filetranser.csproj
?????文件???????5241??2010-01-18?11:46??Filetranser\Filetranser\Form1.cs
?????文件???????6781??2010-01-15?20:54??Filetranser\Filetranser\Form1.Designer.cs
?????文件???????6017??2010-01-15?20:54??Filetranser\Filetranser\Form1.resx
?????文件????????712??2010-01-18?13:17??Filetranser\Filetranser\obj\Debug\Filetranser.csproj.FileListAbsolute.txt
?????文件????????847??2010-01-15?20:57??Filetranser\Filetranser\obj\Debug\Filetranser.csproj.GenerateResource.Cache
?????文件??????14848??2010-01-18?13:14??Filetranser\Filetranser\obj\Debug\Filetranser.exe
?????文件????????180??2010-01-18?10:49??Filetranser\Filetranser\obj\Debug\Filetranser.Form1.resources
?????文件??????34304??2010-01-18?13:14??Filetranser\Filetranser\obj\Debug\Filetranser.pdb
?????文件????????180??2010-01-18?10:49??Filetranser\Filetranser\obj\Debug\Filetranser.Properties.Resources.resources
?????文件????????492??2010-01-14?17:19??Filetranser\Filetranser\Program.cs
?????文件???????1372??2010-01-14?17:19??Filetranser\Filetranser\Properties\AssemblyInfo.cs
?????文件???????2872??2010-01-14?17:19??Filetranser\Filetranser\Properties\Resources.Designer.cs
?????文件???????5612??2010-01-14?17:19??Filetranser\Filetranser\Properties\Resources.resx
?????文件???????1096??2010-01-14?17:19??Filetranser\Filetranser\Properties\Settings.Designer.cs
?????文件????????249??2010-01-14?17:19??Filetranser\Filetranser\Properties\Settings.settings
?????文件???????1183??2010-01-18?11:46??Filetranser\Filetranser\ServerListener.cs
?????文件???????4855??2010-01-18?13:11??Filetranser\Filetranser\ThreadGetMsg.cs
?????文件????????923??2010-01-14?17:19??Filetranser\Filetranser.sln
????..A..H.?????17408??2010-01-18?13:17??Filetranser\Filetranser.suo
?????目錄??????????0??2010-01-15?22:12??Filetranser\Filetranser\obj\Debug\Refactor
?????目錄??????????0??2010-01-14?17:19??Filetranser\Filetranser\obj\Debug\TempPE
?????目錄??????????0??2010-01-18?11:43??Filetranser\Filetranser\bin\Debug
............此處省略9個文件信息
- 上一篇:逐步法線性回歸C#源碼
- 下一篇:c#記事本 基本功能已經全部實現 包附整個工程
評論
共有 條評論