聊天软件源码(易语言写聊天软件源码)
本文目录
易语言写聊天软件源码
我想学写聊天软件,苦无从入手。准备下个源码先从仔细琢磨下别人的作品入手,可是网上看到的大多分三种状况,一、现成的易编译的聊天软件和服务器,根本没有源码,无法研究。二、源码试运行时根本无法发送文字。三、源码用易语言5.1打开时缺支持库,而源码包里的附带了个支持库安装无效。所以特次求一可以添加多好友且可点对点聊天的易源码。可以给下载地址,也可发送至邮箱519948746@QQ.COM 谢谢。希望同所有热爱编程、热爱易语言的人们共同学习。
VB编写的局域网聊天工具源代码
用VB做聊天程序的方法 ---- 所谓“聊天“是指两个程序能够发送数据给对方。这个程序涉及到数据通讯的知识,仿佛很复杂,不过,由于VB给我们提供了一个Winsock控件,问题就变得很简单了。 ---- 先编写“聊天(主机)“程序。在窗体里添加Winsock控件,并设置其Protocol属性为1-SckUDPProtocol,其他属性为缺省值。接着添加两个标签和两个文本框,设置两个标签的标题属性分别为“接收窗“和“发送窗“;两个文本框的标题属性为空。最后编写代码: ---- 1.“聊天(主机)“ Private Sub Form-Load()′设置网络地址Winsock1.LocalPort=1024Winsock1.RemoteHost=“202.96.6.1“Winsock1.RemotePort=1999End SubPrivate Sub Text1-Change()′发送用户输入的内容Winsock1.SendData Text1.TextEnd SubPrivate Sub Winsock1-DataArrival(Byval bytesTotal As Long)Dim rec As String′接收对方数据并在文本框内显示Winsock1.GetData rec, vb StringText2.Text=recEnd Sub---- 2.“聊天(副机)“ Private Sub Form_Load()′设置网络地址Winsock1.LocalPort=1999Winsock1.RemoteHost=“202.96.6.1“Winsock1.RemotePort=1024---- 其他部分程序与(主机)相同。最后将两个程序存盘,并编译成执行(.Exe)文件。现在就可以使用这个程序进行对话了。 ---- 七.文本框中文本的某一特定字符或字符串同时高亮显示的方法 ---- 由于普通TextBox控件不支持不连续字符串的同时高亮显示,所以我们选择RichTextBox控件。单击工程(Project)选单项,在弹出的下拉选单中单击组件(Components)选单项,从弹出的对话框中选择Microsoft Rich Textbox Control 5.0复选框,确定加载RichTextBox控件。 ---- 新建(New)一个工程,在窗体(Form)上添加一个RichTextBox控件和两个Command(按钮)控件,都采用系统默认的Name属性值;设置RichTextBox的Text属性值为空,Command1和Command2的Caption属性值分别设为“输入文本“和“选择字符串“。最后,添加如下VB代码: Private Sub Command1-Click()Dim str As StringDim Text As Stringstr=〃输入文本〃Text=InputBox(str)RichTextBox1.Text=TextEnd SubPrivate Sub Command2-Click()Dim str As StringDim Text As StringDim Position As IntegerDim Lenth As Integerstr=〃输入要高亮显示的字符串〃Text=InputBox(str)If Text 〈〉 〃〃 ThenPosition=InStr(RichTextBox1.Text, Text)-1Lenth=Len(Text)RichTextBox1.SelStart=PositionRichTextBox1.SelLength=LenthRichTextBox1.SelColor=RGB(255,0,0)Do While InStr(Position+Lenth+1, RichTextBox1.Text, Text) 〈〉 0Position=InStr(Position+Lenth+1, RichTextBox1.Text, Text)-1RichTextBox1.SelStart=PositionRichTextBox1.SelLength=LenthRichTextBox1.SelColor=RGB(255,0,0)LoopEnd IfEnd Sub ---- 按F5执行程序,单击“输入文本“按钮,在弹出的对话框中输入一些文本,确定后,刚刚输入的文本将显示在RichTextBox中;再单击“选择字符串“按钮,在弹出的对话框中输入你希望高亮显示的字符串,确定后,RichTextBox中相应的字符串将以红色高亮显示。 ---- 八.编程实现Windows 95/98操作系统热启动的方法 ---- 要利用程序实现系统的重新启动,可以在你的程序中调用API函数来实现。建一个子函数:(以VB为例) Declare Function SystemParametersInfo Lib 〃user32〃 Alias -〃SystemParametersInfo〃 (ByVal uAction As Long,ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As LongSub DisableCtrlAltDelete(bDisabled As Boolean)Dim X As LongX=SystemParametersInfo(97, bDisabled, CStr(1), 0)End SubCall DisableCtrlAltDelete(true) ′禁止热启Call DisableCtrlAltDelete(false) ′允许热启 ---- 九.在Windows 95/ 98启动后自动启动程序的方法 ---- 我们都知道在Windows 95/98的“开始“→“程序“选单下有一“启动“选单项,当每次启动Windows 95或Windows 98时,系统都会自动启动放在“启动“选单栏里的可执行程序。 ---- 但目前有好多软件,像解霸五、ICQ,以及大部分实时侦测病毒的软件等等,安装后,并没有放在“启动“选单里,也能在启动操作系统时自动启动。怎么实现的呢? ---- 其实只要知道Windows注册表的一些知识,这个问题就不能称之为问题了。用鼠标单击“开始“,打开开始选单,再单击“运行“,出现一对话框,然后输入“regedit“,确定后,会打开系统注册表器,找到HKEY-LOCAL-MACHINE? SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就参考一下已经存在的键值。 ---- 十. 如何把数据文件输出到Text控件中?如果数据量比较大,窗体满屏也不够大,怎么解决? ---- 有一个比较简单的方法,就是把数据放到一个文本框(Text)里,并在其中加上水平和垂直滚动条。具体实现步骤为:先在窗体(Form)里加入一个文本框,采用默认名Text1;然后,设置文本框Text1的属性:Text属性设置为空,MultiLine属性设置为True,ScrollBars属性设置为3-Both;接着添加如下VB代码: Private Sub Form-Load()Dim Handle As IntegerDim FileName As StringOn Error GoTo ErrExitbegin:′输入要显示的数据文件的名称FileName=InputBox$(〃Input Filename〃, 〃Open File〃)On Error GoTo FileErrHandle=FreeFileOpen FileName For Input As #Handle′把数据文件中的数据输出到文本框中Text1.Text=Input$(LOF(Handle), Handle)Close #HandleExit SubFileErr:Dim ErrNum As IntegerIf Err.Number=53 ThenErrNum=MsgBox(〃File not exist〃,vbOKCancel, 〃Error Information〃)If ErrNum=1 ThenGoTo beginElseExit SubEnd IfEnd IfMsgBox Err.Description, , 〃file open failed〃ErrExit:Exit SubEnd Sub′使文本框充满整个窗体Private Sub Form-Resize()Text1.Left=0Text1.Top=0Text1.Width=Form1.Width-100Text1.Height=Form1.Height-400End Sub---- 通过这样的处理,不仅能解决问题,而且用户还可以在文本框中对数据进行。 ---- 十一.关联文件列表框、目录列表框和驱动器列表框的方法 ---- 想做一个对话窗体,包含驱动器列表框、目录列表框和文件列表框,并能实现三者的同步操作,怎么做?这都是我们在实际应用中经常会遇到的问题,在VB中解决这个问题非常简单,可以通过Path属性的改变引发Change事件来实现。例如: Sub Dir1-Change()File1.Path=Dir1.PathEnd Sub---- 该事件过程使窗体上的目录列表框Dir1和文件列表框File1产生同步。因为目录列表框Path属性的改变将产生Change事件,所以在Dir1-Change事件过程中,把Dir1.Path赋给File1.Path,就可以产生同步效果。类似地,增加下面的事件过程,就可以使三种列表框同步操作: Sub Drive1-Change()Dir1.Path=Drive1.DriveEnd Sub---- 该过程使驱动器列表框和目录列表框同步,前面的过程使目录列表框和文件列表框同步,从而使三种列表框同步,问题即可解决。
哪位大神聊天软件代码啊(语言不限制),要求三人聊天,可传输文件,获取ip地址端口求大神帮忙
热心网友局域网聊天软件飞鸽传书是目前比较流行的局域网即时通讯软件,由于历史悠久,它具有比较多的用户。 因为 FreeEIM 的实现原理和飞鸽传书差不多,希望广大用户了解其原理后,在使用时更加得心应手。 程序启动时先读取用户配置文件,一般是“*.ini“格式,然后,使用Winsock的广播消息给整个局域网发送一个数据包,这时候,如果其他电脑已经运行了飞鸽传书,那么他收到这个包后,会将包的信息读取出来,当然,这个包里有用户的IP,用户名,性别等等。这样,在用户列表里就多了一个用户了。他的用户检查方式就如此简单而已。至于跨网段的实现,只需简单地修改一下广播地址就行了,如果不考虑速度,你可以给整个internet发广播消息。 消息发送,文件传输这些功能,都比较简单,如果你会网络编程,给你对方IP地址,这些功能实现起来再简单不过了。语音、视屏等,只需编写一些语音视频采集代码,传书的话,就像传文件一样。这里给段广播消息的实现代码吧: // 发送广播登陆消息void EM_UserLogin::SendLogin_BC(LPEM_DATA msg){SOCKET m_socket;m_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);if (INVALID_SOCKET == m_socket){ MessageBox(0, “socket failed.“, NULL, MB_OK);}SOCKADDR_IN sin; sin.sin_addr.s_addr = htonl(INADDR_BROADCAST);sin.sin_family = AF_INET;sin.sin_port = htons(BROADCAST_SEND_PORT); BOOL bOpt = TRUE;if (SOCKET_ERROR == setsockopt(m_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt))){ // Error occurred ::MessageBox(0,“BC setsockopt error.“,0,0); return;}char *tmpBuf = msg-》GetBuffer();if (SOCKET_ERROR == sendto(m_socket, tmpBuf, msg-》GetLength(), 0, (PSOCKADDR)&sin, sizeof(sin))){ // Error occurred ::MessageBox(0,“BC sendto error.“,0,0); return;} closesocket(m_socket);} 我们要向QQ、MSN、ICQ、AIM等大型即时通讯看齐,和他们对比,XEIM只是班级里面的一个差生,要赶得上这些优秀的同学,只有付出更大的努力才有可能追上甚至超赶他们。但是,你什么也不做,这会变成一个笑话。飞鸽传书的实现原理:(1)最关键的是局域网用户列表的建立;飞鸽启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息;已启动飞鸽的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的个人信息;从而双方都能建立起用户列表;(2)刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;可以做一个小工具,监控2425端口内存流,就能截获刷新和聊天时的消息。(3)传送聊天信息时同样使用UDP协议;由于UDP协议是无连接协议,传输速度快,但是没有确认机制,是不可靠的协议,需要自己定义返回信息的标志来判断对方是否收到信息;(4)用户离线时发送一个离线广播包到255.255.255.255,收到此广播包的用户,根据包中的IP地址(也可能是多种判断标志或者包含硬件标识,比如网卡地址等)删除对方的用户列表信息;(5)广域网无法直接使用广播方式,靠手工添加“局域网外广播列表“来建立相互的关系;(6)飞鸽传送文件是使用TCP协议,端口2425;其他一些资料:1.飞鸽使用C++语言,开发工具:Visual C++ 4.1, 6.0, or later;2.飞鸽公开源码,在作者(来自日本广岛的白水启章)和汉化者(阿志)网站下载源码,源码注释为日文;可以使用VC++修改、编译;3.飞鸽传书是来自日本的软件,日文版是它的第一版本;此外还有中文,英文,韩文,葡萄牙文等语言;4.飞鸽使用的加密算法:RSA、Blowfish、RC;5.飞鸽可以使用命令行方式发送信息,命令格式如下: ipmsg 命令改变默认端口,并同时启动多个实例,但是修改后只有使用相同端口的用户才能收到相互的信息;6.飞鸽非安装版,并不是纯绿色软件,直接删除会在注册表留下垃圾键值; * 飞鸽把所有设置信息都保存在注册表的以下位置: \\HKEY_CURRENT_USER\Software\HSTools\ 用户密码以不可逆加密方式存储. * 如果你忘记了密码, 可以在注册表中将此键值删除,清除密码*\\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr7.飞鸽一次传送文件数达到几千个时,有丢失文件的可能,怀疑是飞鸽的一个bug,而传输大文件则没有问题;8.飞鸽最稳定的正式版本是V2.06;目前v2.50 alpha6 版正在测试,尚未正式发布;其他如2.71,2007绿色版为修改版本,并非正版;
谁知道简单的聊天程序源代码(Android的)
代码如下:package com.neusoft.edu.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/*** 服务器端代码* 获取客户端发送的信息,显示并且返回对应的回复* 1、创建ServerSocket对象* 2、调用accept方法获取客户端连接* 3、使用输入流读取客户端发送的数据* 4、使用输出流向客户端写入数据* 5、关闭对应的对象* @author L**/public class ChatServer {/*** @param args*/public static void main(String args) {try {//1、创建ServerSocket对象,8875为自定义端口号ServerSocket server = new ServerSocket(8857);//简单提示System.out.println(“等待客户端连接……“);//2、获取客户端连接Socket client = server.accept();//获取客户端的相关信息System.out.println(client.getInetAddress().getHostAddress() + “连接上来了……“);//3.1、定义输入流和输出流对象BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));//用来获取从控制台输入的数据,将该数据发送给客户端BufferedReader inByServer = new BufferedReader(new InputStreamReader(System.in));PrintWriter out = new PrintWriter(client.getOutputStream(), true);//读取到的数据String data = null;String answer = null;//循环和客户端进行通信do{//3.2、读取客户端发送的数据data = in.readLine();//在服务器端显示读取到的数据System.out.println(“客户端发送信息:“ + data);//获取服务器端要发送给客户端的信息System.out.print(“服务器端回复客户端:“);answer = inByServer.readLine();//3.3、将数据写入到客户端out.println(answer);out.flush();}while(!“bye“.equals(data));//4、关闭相关资源out.flush();in.close();inByServer.close();out.close();//关闭Socket对象client.close();server.close();System.out.println(“服务器端关闭……“);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
更多文章:

vmware tools安装后不能拖拽文件(安装vmware tools后宿主机的文件没法拖到虚拟机里,怎么办)
2025年3月8日 23:50

lay eggs(fish lay eggs 中lay为啥不加s)
2025年2月21日 14:00

html背景图片居中(用html添加背景图片时,怎么让它不重复并且居中)
2025年2月23日 23:00

x86是多少位(为什么32位系统是X86,不是32呢,而64位又是64呢)
2025年4月3日 02:40

源码战争下载(windows怎么下载安卓系统的源代码如何编译源代码)
2025年2月12日 22:30

headfirst设计模式pdf下载(HeadFirst设计模式的介绍)
2025年3月29日 11:30

scholarly的意思(scholarly atmosphere是什么意思)
2025年3月12日 19:00

auntie和aunt的区别(关于几个表示“阿姨”的英文单词 aunt aunty auntie 三个词有什么区别)
2025年3月5日 03:10