資源簡介
服務器與客戶端互傳信息的Socket 例子
該通訊程序已經在實際項目中運營過,代碼是非常不錯的。
功能有:上傳下載、消息請求訪問服務器目標、文件夾、文件。能夠滿足一般的通訊要求
該通訊程序已經在實際項目中運營過,代碼是非常不錯的。
功能有:上傳下載、消息請求訪問服務器目標、文件夾、文件。能夠滿足一般的通訊要求
代碼片段和文件信息
using?System;
using?System.IO;
using?System.Net.Sockets;
using?System.Threading;
namespace?FileSocket
{
????public?class?Client
????{
????????private?int?_bufferSize?=?1024?*?1024;?????????//緩存大小
????????private?string?_rndname;
????????private?TcpClient?_tcpclient;???????????????????????//Socket鏈接對象
????????private?string?_serveraddress?=?“192.168.1.106“;????//服務器地址
????????private?int?_serverport?=?8000;?????????????????????//服務器端口
????????private?NetworkStream?_networkstream;
????????private?long?_filesize?=?0;
????????//服務器地址
????????public?string?ServerAddress
????????{
????????????set?{?_serveraddress?=?value;?}
????????????get?{?return?_serveraddress;?}
????????}
????????//服務器端口
????????public?int?ServerPort
????????{
????????????set?{?_serverport?=?value;?}
????????????get?{?return?_serverport;?}
????????}
????????///?
????????///?初始化鏈接
????????///?
????????///?返回?操作結果
????????private?bool?EstablishConnection()
????????{
????????????try
????????????{
????????????????_rndname?=?System.Guid.NewGuid().ToString();
????????????????_tcpclient?=?new?TcpClient(_serveraddress?_serverport);
????????????????_networkstream?=?_tcpclient.GetStream();
????????????????return?true;
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????Console.WriteLine(ex.ToString());
????????????????return?false;
????????????}
????????}
????????///?
????????///?注冊鏈接
????????///?
????????///?返回?操作結果
????????private?bool?RegisterWithServer()
????????{
????????????try
????????????{
????????????????string?s_cmd?=?“CONN|“?+?_rndname;
????????????????Byte[]?b_out?=?System.Text.Encoding.UTF8.GetBytes(s_cmd);?????//注冊鏈接
????????????????_networkstream.Write(b_out?0?b_out.Length);
????????????????Byte[]?b_in?=?new?Byte[_bufferSize];
????????????????int?_length?=?_networkstream.Read(b_in?0?_bufferSize);
????????????????string?s_in?=?System.Text.Encoding.UTF8.GetString(b_in?0?_length);??//讀取返回信息
????????????????string[]?tokens?=?s_in.Trim().Split(new?Char[]?{?‘|‘?});
????????????????if?(tokens[0]?==?“HELLO“)?return?true;??????????????????????//鏈接成功
????????????????else?return?false;
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????Console.WriteLine(ex.ToString());
????????????????return?false;
????????????}
????????}
????????///?
????????///?退出鏈接
????????///?
????????///?返回?操作結果
????????private?bool?EndWithServer()
????????{
????????????try
????????????{
????????????????string?s_cmd?=?“GONE|“?+?_rndname;
????????????????Byte[]?b_out?=?System.Text.Encoding.UTF8.GetBytes(s_cmd);
????????????????_networkstream.Write(b_out?0?b_out.Length);
????????????????Byte[]?b_in?=?new?Byte[_bufferSize];
????????????????int?_length?=?_networkstream.Read(b_in?0?_bufferSize);
????????????????string?s_in?=?System.Text.Encoding.UTF8.Ge
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????......R??????1296??2009-03-13?09:06??ChatServer\Client.cs
????......R?????16110??2009-03-13?21:56??ChatServer\Program.cs
?????文件??????17160??2010-05-28?10:46??Client.cs
?????目錄??????????0??2010-05-28?10:42??ChatServer
-----------?---------??----------?-----??----
????????????????34566????????????????????4
評論
共有 條評論