资源简介

服务器与客户端互传信息的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


评论

共有 条评论