当前位置:编程学习 > C#/ASP.NET >>

新手提问C# 如何实现在局域网上文件的传输.和聊天.望大虾指教

怎么建立协议 啊 和文件的传输 

最好有原代码.希望大虾们指教

希望结交这方面的爱好者` --------------------编程问答-------------------- 正巧 我们现在就在做这项目。

UDP:局域网用广播形式传送信息。比如你的IP地址,你的主机名。当然你可以设置更多。

然后我们是用TCP协议传送消息与文件。

我现在做的头都闷了。具体起来觉得非常复杂。

(ps:新手入门,高手莫喷) --------------------编程问答-------------------- 楼上的莫非是我老乡~~~~ --------------------编程问答-------------------- 贴段代码,我用系统自动更新里的

客户端下载文件:

 public void ReadFileFromServer()
        {
            try
            {
                Byte[] write = myEncoding.GetBytes(strFileName);
                stream.Write(write, 0, write.Length);

                FileStream fs = new FileStream(strFilePath+ strFileName, FileMode.OpenOrCreate, FileAccess.Write);
                BinaryWriter bw = new BinaryWriter(fs);
                int bytes = 0;
                int writebytes = 0;
                Byte[] read = new Byte[1024];
                while ((bytes = stream.Read(read, 0, read.Length)) != 0)
                {
                    String temp = myEncoding.GetString(read, 0, bytes);
                    bw.Write(read, 0, bytes);
                    writebytes += bytes;
                    read = new Byte[1024];
                }
                bw.Close();
                fs.Close();
                frmUpdate.addValue();
            }
            catch (Exception ex)
            {
                MessageBox.Show("更新系统出错:" + ex.Message, "更新提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                stream.Close();
            }
        }

--------------------编程问答-------------------- 哈哈哈哈哈哈哈哈哈
我也正好在做哎~
想要在你的机器里开一个聊天室,或者什么界面你必须先...
1、查看你的本地ID如 192.168.0.56
2、在你新建一个.net网站 在弹出对话框中的位置-文件系统(改成HTTP)输入你的IP
如:http://192.168.0.56/文件/文件名(如:inex.aspx)/聊天室
3、开始建立你的聊天室8
只要你的机器不关机,别人在地址栏中输入上面的地址就OK了
4、利用你所学习的控件就可以实现功能的页面了!
详细请加我好友
--------------------------------------------------------------------
╔☆→——————— ∮ —╗ 
┊有没有那麽一首歌 ∮ ∮ ┊ ● /○ 
┊оО○会让伱心里记著我?┊/█∨█ 
╚☆→————————←☆╝ ∏ ∏ 
--------------------编程问答--------------------

//udp发送和接受数据
using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace jieshou
{
    class Program
    {
        static void Main(string[] args)
        {
                Jie();
        }

        static void Jie()
        {
            int i = 0;

             Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//初始化一个Scoket协议

            IPEndPoint iep = new IPEndPoint(IPAddress.Any, 3000);//初始化一个侦听局域网内部所有IP和指定端口

            EndPoint ep = (EndPoint)iep;

            socket.Bind(iep);//绑定这个实例

            while (true)
            {
                byte[] buffer = new byte[1024];//设置缓冲数据流

                socket.ReceiveFrom(buffer, ref ep);//接收数据,并确把数据设置到缓冲流里面

                Console.WriteLine(Encoding.Unicode.GetString(buffer).TrimEnd('\u0000') + " " + i.ToString());

                i++;
            }
        }
    }
}


using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace guangbo
{
    class Program
    {
        //private Thread trd;
        public int num = 0;

        static void Main(string[] args)
        {
            //Thread trd = new Thread(new ThreadStart(guangbo()));
            //trd.IsBackground = true;
            //trd.Start();
            for (int i = 0; i < 10000; i++)
            {
                Console.WriteLine(i);
                //Thread.Sleep(10000);
                Guang();
            }
            Console.ReadKey();
        }

        static  void Guang()
        {
            Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//初始化一个Scoket实习,采用UDP传输

            IPAddress ip = IPAddress.Parse("192.168.111.195");

            //ip可以用IPAddress.Any来代替全发送。

            IPEndPoint iep = new IPEndPoint(ip, 3000);//初始化一个发送广播和指定端口的网络端口实例

            sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);//设置该scoket实例的发送形式


            string request ="你好,hi";//初始化需要发送而的发送数据

            byte[] buffer = Encoding.Unicode.GetBytes(request);

            sock.SendTo(buffer, iep);

            sock.Close();            
            
            //Console.WriteLine("nihao");
        }
    }
}



补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,