新手提问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#