cudp简易的局域网聊天软件
1. 比飞秋更好用的局域网沟通软件
看下内网通。飞秋早就不提供更新维护了。内网通是一款类似QQ的局域网聊天传送文件的即时通讯软件,基于 TCP/IP(UDP)。而且兼容的飞鸽传书通讯协议,具有局域网内文件传输速度快,操作简便,并且拥有QQ的很多功能,如建群、语音、远程协助、表情、截图、共享文件等功能。我们现在办公室禁外网,我们内部都使用这一通讯工具,非常方便。
2. 比较好用的局域网沟通软件
TOP 1 imo内网通
Imo内网通是一款完全免费局域网办公沟通软件。也是融合了社交元素的协同办公平台。它的内容传输都是基于局域网, 快捷方便是软件的最大特点,自动扫描在线飞鸽用户,无需安装和配置各类打印机驱动程序,即刻实现客户端文件互传、远程播放和打印功能,成为企业、政府办公和家庭多媒体共享的有力工具。
而且基于内网,安全、可控。它将聊天信息全部留在用户本机,不经过互联网和服务器,不受监控,并对聊天信息通过AES技术进行加密,从源头上保证了用户的信息安全。完全兼容网上广为流传的飞鸽传书并比原来飞鸽功能更加强大.
很多朋友钟爱imo内网通,不仅是因为内网通避免了私人信息对工作干扰,更因为内网通的即时通讯、话题讨论、时间管理等功能,使企业内部的沟通能有效传达,让有限的时间更加专注于工作。大幅提高工作效率。
功能性:★★★★☆
性价比:★★★(完全免费)
推荐指数:★★★★★
2
TOP 2 飞秋
飞秋(FeiQ)是一款局域网管理软件/局域网聊天软件的绿色软件,它参考了飞鸽传书(IPMSG)和QQ, 完全兼容飞鸽传书(IPMSG)协议,具有局域网传送方便,速度快,操作简单的优点,同时具有QQ中的一些功能,是飞鸽的完善代替者。
但是很遗憾的是,由于互联网的快速发展,人们的眼光早已从局域网转向了更加广阔的全球化互联网领域。大量的软件开发人员都投身到了互联网浪潮之中,而局域网这样的“小池塘”,渐渐被一些开发人员所忽略。飞秋宣布停止更新后、市场上仅仅剩下imo内网通等为数不多几家仍然坚持提供局域网沟通服务。
功能性:★★★★★
性价比:★★☆
推荐指数:★★★★
3
TOP 3 飞鸽传书
飞鸽传书是一款局域网内部聊天、文件传输工具, 在程序结构方面采用了Windows SDK处理结构,通信方面采用了TCP/UDP通信方式,在文件传输处理方面采用文件映射技术,等等。通过分析IP Messenger的运行、工作原理,可以提高并加深对Windows处理流程的理解,提高SOCKET编程技术等,因此特对其源码进行分析,以抛砖引玉,共同提高大家的编程技术。
功能性:★★★★
性价比:★★
推荐指数:★★★
4
Top4 布谷鸟
布谷鸟2013具有通讯聊天、群聊、传送文件、离线文件、远程协助、录音留言、消息签收、语音、视频、共享文档、目录共享、网络硬盘、公告、MSN通讯、视频会议、手机短信、Web登录、二次开发接口等功能。 可实现局域网络间跨网段、专用虚拟网、INTERNET(外网)连接的通讯。 可支持上万级用户并发。安全、稳定、高效、维护方便、永久免费
功能性:★★★
性价比:★★
推荐指数:★★
3. 关于用C语言开发一个简单的局域网聊天软件
Linux系统都是C写的 用C当然行得通
就是个socket编程嘛
我们原来做过一个的原理描述 当然内 这个是C\S模式容的 其实你可以做成 无服务端的
本系统具有局域网聊天功能。采用了C\S模式(即服务器创建套接字后,转换为监听套接字,一直在监听是否由客户端的请求。服务器接收到相应的请求后,进行相应的处理)。采用了TCP/IP(面向连接)协议。运用了SOCKET套接字实现了很方便的访问TCP/IP协议。多线程的操作。
服务器的程序(简述):
创建socket-->bind()-->listen()-->accept()-->recv/send()-->close();
客户端的程序(简述):
创建scoket-->发送connect-->recv/send()-->close();
4. 我要用VS2005-C#做一个局域网内的聊天软件
C#.Net网络程序开发-Socket篇
Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受
管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可
以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别
上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎
囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这
种分层是可以扩展的,能够适应Internet不断扩展的需要。
抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以
视为包含3个层次:请求/响应层、应用协议层、传输层。WebReqeust和
WebResponse 代表了请求/响应层,支持Http、Tcp和Udp的类组成了应用协议
层,而Socket类处于传输层。
传输层位于这个结构的最底层,当其上面的应用协议层和请求/响应层不能满足应用
程序的特殊需要时,就需要使用这一层进行Socket套接字编程。
而在.Net中,System.Net.Sockets 命名空间为需要严密控制网络访问的开发人员提
供了 Windows Sockets (Winsock) 接口的托管实现。System.Net 命名空间中的所
有其他网络访问类都建立在该套接字Socket实现之上,如TCPClient、TCPListener
和 UDPClient 类封装有关创建到 Internet 的 TCP 和 UDP 连接的详细信息;
NetworkStream类则提供用于网络访问的基础数据流等,常见的许多Internet服务
都可以见到Socket的踪影,如Telnet、Http、Email、Echo等,这些服务尽管通讯
协议Protocol的定义不同,但是其基础的传输都是采用的Socket。
其实,Socket可以象流Stream一样被视为一个数据通道,这个通道架设在应用程
序端(客户端)和远程服务器端之间,而后,数据的读取(接收)和写入(发送)
均针对这个通道来进行。
可见,在应用程序端或者服务器端创建了Socket对象之后,就可以使用
Send/SentTo方法将数据发送到连接的Socket,或者使用Receive/ReceiveFrom方
法接收来自连接Socket的数据;
针对Socket编程,.NET 框架的 Socket 类是 Winsock32 API 提供的套接字服务
的托管代码版本。其中为实现网络编程提供了大量的方法,大多数情况下,Socket 类
方法只是将数据封送到它们的本机 Win32 副本中并处理任何必要的安全检查。如
果你熟悉Winsock API函数,那么用Socket类编写网络程序会非常容易,当然,
如果你不曾接触过,也不会太困难,跟随下面的解说,你会发觉使用Socket类开发
windows 网络应用程序原来有规可寻,它们在大多数情况下遵循大致相同的步骤。
在使用之前,你需要首先创建Socket对象的实例,这可以通过Socket类的构造方
法来实现:
public Socket(AddressFamily addressFamily,SocketType
socketType,ProtocolType protocolType);
其中,addressFamily 参数指定 Socket 使用的寻址方案,socketType 参数指定
Socket 的类型,protocolType 参数指定 Socket 使用的协议。
下面的示例语句创建一个 Socket,它可用于在基于 TCP/IP 的网络(如 Internet)
上通讯。
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
若要使用 UDP 而不是 TCP,需要更改协议类型,如下面的示例所示:
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
ProtocolType.Udp);
一旦创建 Socket,在客户端,你将可以通过Connect方法连接到指定的服务器,
并通过Send/SendTo方法向远程服务器发送数据,而后可以通过
Receive/ReceiveFrom从服务端接收数据;而在服务器端,你需要使用Bind方法绑
定所指定的接口使Socket与一个本地终结点相联,并通过Listen方法侦听该接口
上的请求,当侦听到用户端的连接时,调用Accept完成连接的操作,创建新的Socket
以处理传入的连接请求。使用完 Socket 后,记住使用 Shutdown 方法禁用 Socket,
并使用 Close 方法关闭 Socket。其间用到的方法/函数有:
Socket.Connect方法:建立到远程设备的连接
public void Connect(EndPoint remoteEP)(有重载方法)
Socket.Send 方法:从数据中的指示位置开始将数据发送到连接的 Socket。
public int Send(byte[], int, SocketFlags);(有重载方法)
Socket.SendTo 方法 将数据发送到特定终结点。
public int SendTo(byte[], EndPoint);(有重载方法)
Socket.Receive方法:将数据从连接的 Socket 接收到接收缓冲区的特定位置。
public int Receive(byte[],int,SocketFlags);
Socket.ReceiveFrom方法:接收数据缓冲区中特定位置的数据并存储终结点。
public int ReceiveFrom(byte[], int, SocketFlags, ref EndPoint);
Socket.Bind 方法:使 Socket 与一个本地终结点相关联:
public void Bind( EndPoint localEP );
Socket.Listen方法:将 Socket 置于侦听状态。
public void Listen( int backlog );
Socket.Accept方法:创建新的 Socket 以处理传入的连接请求。
public Socket Accept();
Socket.Shutdown方法:禁用某 Socket 上的发送和接收
public void Shutdown( SocketShutdown how );
Socket.Close方法:强制 Socket 连接关闭
public void Close();
可以看出,以上许多方法包含EndPoint类型的参数,在Internet中,TCP/IP 使用
一个网络地址和一个服务端口号来唯一标识设备。网络地址标识网络上的特定设备;
端口号标识要连接到的该设备上的特定服务。网络地址和服务端口的组合称为终结
点,在 .NET 框架中正是由 EndPoint 类表示这个终结点,它提供表示网络资源或
服务的抽象,用以标志网络地址等信息。.Net同时也为每个受支持的地址族定义了
EndPoint 的子代;对于 IP 地址族,该类为 IPEndPoint。IPEndPoint 类包含应用
程序连接到主机上的服务所需的主机和端口信息,通过组合服务的主机IP地址和端
口号,IPEndPoint 类形成到服务的连接点。
用到IPEndPoint类的时候就不可避免地涉及到计算机IP地址,.Net中有两种类可
以得到IP地址实例:
IPAddress类:IPAddress 类包含计算机在 IP 网络上的地址。其Parse方法可将 IP
地址字符串转换为 IPAddress 实例。下面的语句创建一个 IPAddress 实例:
IPAddress myIP = IPAddress.Parse("192.168.1.2");
Dns 类:向使用 TCP/IP Internet 服务的应用程序提供域名服务。其Resolve 方法
查询 DNS 服务器以将用户友好的域名(如"host.contoso.com")映射到数字形式
的 Internet 地址(如 192.168.1.1)。Resolve方法 返回一个 IPHostEnty 实例,
该实例包含所请求名称的地址和别名的列表。大多数情况下,可以使用 AddressList
数组中返回的第一个地址。下面的代码获取一个 IPAddress 实例,该实例包含服
务器 host.contoso.com 的 IP 地址。
IPHostEntry ipHostInfo = Dns.Resolve("host.contoso.com");
IPAddress ipAddress = ipHostInfo.AddressList[0];
你也可以使用GetHostName方法得到IPHostEntry实例:
IPHosntEntry hostInfo=Dns.GetHostByName("host.contoso.com")
在使用以上方法时,你将可能需要处理以下几种异常:
SocketException异常:访问Socket时操作系统发生错误引发
ArgumentNullException异常:参数为空引用引发
ObjectDisposedException异常:Socket已经关闭引发
在掌握上面得知识后,下面的代码将该服务器主机( host.contoso.com的 IP 地址
与端口号组合,以便为连接创建远程终结点:
IPEndPoint ipe = new IPEndPoint(ipAddress,11000);
确定了远程设备的地址并选择了用于连接的端口后,应用程序可以尝试建立与远程
设备的连接。下面的示例使用现有的 IPEndPoint 实例与远程设备连接,并捕获可
能引发的异常:
try {
s.Connect(ipe);//尝试连接
}
//处理参数为空引用异常
catch(ArgumentNullException ae) {
Console.WriteLine("ArgumentNullException : {0}", ae.ToString());
}
//处理操作系统异常
catch(SocketException se) {
Console.WriteLine("SocketException : {0}", se.ToString());
}
catch(Exception e) {
Console.WriteLine("Unexpected exception : {0}", e.ToString());
}
需要知道的是:Socket 类支持两种基本模式:同步和异步。其区别在于:在同步模
式中,对执行网络操作的函数(如 Send 和 Receive)的调用一直等到操作完成后
才将控制返回给调用程序。在异步模式中,这些调用立即返回。
另外,很多时候,Socket编程视情况不同需要在客户端和服务器端分别予以实现,
在客户端编制应用程序向服务端指定端口发送请求,同时编制服务端应用程序处理
该请求,这个过程在上面的阐述中已经提及;当然,并非所有的Socket编程都需要
你严格编写这两端程序;视应用情况不同,你可以在客户端构造出请求字符串,服
务器相应端口捕获这个请求,交由其公用服务程序进行处理。以下事例语句中的字
符串就向远程主机提出页面请求:
string Get = "GET / HTTP/1.1\r\nHost: " + server + "\r\nConnection: Close\r\n\r\n";
远程主机指定端口接受到这一请求后,就可利用其公用服务程序进行处理而不需要
另行编制服务器端应用程序。
综合运用以上阐述的使用Visual C#进行Socket网络程序开发的知识,下面的程序
段完整地实现了Web页面下载功能。用户只需在窗体上输入远程主机名(Dns 主
机名或以点分隔的四部分表示法格式的 IP 地址)和预保存的本地文件名,并利用
专门提供Http服务的80端口,就可以获取远程主机页面并保存在本地机指定文件
中。如果保存格式是.htm格式,你就可以在Internet浏览器中打开该页面。适当添
加代码,你甚至可以实现一个简单的浏览器程序。
实现此功能的主要源代码如下:
//"开始"按钮事件
private void button1_Click(object sender, System.EventArgs e) {
//取得预保存的文件名
string fileName=textBox3.Text.Trim();
//远程主机
string hostName=textBox1.Text.Trim();
//端口
int port=Int32.Parse(textBox2.Text.Trim());
//得到主机信息
IPHostEntry ipInfo=Dns.GetHostByName(hostName);
//取得IPAddress[]
IPAddress[] ipAddr=ipInfo.AddressList;
//得到ip
IPAddress ip=ipAddr[0];
//组合出远程终结点
IPEndPoint hostEP=new IPEndPoint(ip,port);
//创建Socket 实例
Socket socket=new
Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
try
{
//尝试连接
socket.Connect(hostEP);
}
catch(Exception se)
{
MessageBox.Show("连接错误"+se.Message,"提示信息
,MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);
}
//发送给远程主机的请求内容串
string sendStr="GET / HTTP/1.1\r\nHost: " + hostName +
"\r\nConnection: Close\r\n\r\n";
//创建bytes字节数组以转换发送串
byte[] bytesSendStr=new byte[1024];
//将发送内容字符串转换成字节byte数组
bytesSendStr=Encoding.ASCII.GetBytes(sendStr);
try
{
//向主机发送请求
socket.Send(bytesSendStr,bytesSendStr.Length,0);
}
catch(Exception ce)
{
MessageBox.Show("发送错误:"+ce.Message,"提示信息
,MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);
}
//声明接收返回内容的字符串
string recvStr="";
//声明字节数组,一次接收数据的长度为1024字节
byte[] recvBytes=new byte[1024];
//返回实际接收内容的字节数
int bytes=0;
//循环读取,直到接收完所有数据
while(true)
{
bytes=socket.Receive(recvBytes,recvBytes.Length,0);
//读取完成后退出循环
if(bytes〈=0)
break;
//将读取的字节数转换为字符串
recvStr+=Encoding.ASCII.GetString(recvBytes,0,bytes);
}
//将所读取的字符串转换为字节数组
byte[] content=Encoding.ASCII.GetBytes(recvStr);
try
{
//创建文件流对象实例
FileStream fs=new
FileStream(fileName,FileMode.OpenOrCreate,FileAccess.ReadWrite);
//写入文件
fs.Write(content,0,content.Length);
}
catch(Exception fe)
{
MessageBox.Show("文件创建/写入错误:"+fe.Message,"提示信息
",MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);
}
//禁用Socket
socket.Shutdown(SocketShutdown.Both);
//关闭Socket
socket.Close();
}
}
5. 局域网聊天软件哪个软件最好
飞秋(FeiQ)是一款局域网聊天传送文件的绿色软件,它参考了飞鸽传书(IPMSG)和QQ, 完全兼容飞鸽传书(IPMSG)协议,具有局域网传送方便,速度快,操作简单的优点,同时具有QQ中的一些功能。
功能说明:
- 飞秋(FeiQ)是一款局域网内即时通信软件, 基于 TCP/IP(UDP).
- 完全兼容网上广为流传的飞鸽传书并比原来飞鸽功能更加强大.
- 不需要服务器支持.
- 支持文件/文件夹的传送 (支持大文件传送[4G以上]), 发送方和接收方都可查看传送进度功能.
- 可以建立无需服务器的聊天室,具有群聊天室的功能.
- 分组功能
- 组权限功能,可能每组设置不同的权限,例如屏蔽该组成员的信息,对该组成员隐身等。
- 给所有在线的用户群发消息及分组群发功能.
- 黑名单功能
- 隐身功能,及对某特定组进行隐身功能
- 自定义备注名功能
- 个性头像、个性形象及个性签名功能
- 共享文件功能
- 远程协助功能,让你轻松实现远程维护、远程展示、共享桌面等功能,即时远程沟通。
- 语音聊天功能,可以语音对话,轻松实现协同办公。
- 自定义表情功能、支持截屏、支持GIF动画
- 随手涂鸭功能,能把您的创意想法得以很好的表达。
- 垃圾信息屏蔽功能
- 用户上下线进行通知功能
- 限制传送文件速度功能
- 日程安排与记事功能
- 日程提醒功能;它可以实现年、月、周、日、小时、分、秒的提醒,提醒同时可以执行动作(提示窗口、播放音乐、执行指定程序、关机等)。甚至每年的第几个月提醒、 第几月的星期几提醒等特殊的提醒。