十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
楼主你好,你所指的那个指令就是"winchat",Windows自带的局域网聊天工具.使用方法:开始--运行--输入winchat,就可以打开Winchat了.只能实现很简单的功能,并且是中文,没什么好介绍的,相信你一看就懂,希望可以帮到你!
武胜网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
ps:你所说的电影是杜拉拉升职记吧?貌似那是用的邮件发的,不小心点成群发了~嘿嘿..
【ClientSocketDemo.java 客户端Java源代码】 import java.net.*; import java.io.*; public class
ClientSocketDemo { //声明客户端Socket对象socket Socket socket = null; //声明客户器端数据输入输出流
DataInputStream in; DataOutputStream out; //声明字符串数组对象response,用于存储从服务器接收到的信息
String response[]; //执行过程中,没有参数时的构造方法,本地服务器在本地,取默认端口10745 public ClientSocketDemo() { try {
//创建客户端socket,服务器地址取本地,端口号为10745 socket = new Socket("localhost",10745);
//创建客户端数据输入输出流,用于对服务器端发送或接收数据 in = new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream()); //获取客户端地址及端口号 String ip =
String.valueOf(socket.getLocalAddress()); String port =
String.valueOf(socket.getLocalPort()); //向服务器发送数据 out.writeUTF("Hello
Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port);
//从服务器接收数据 response = new String[3]; for (int i = 0; i response.length;
i++) { response[i] = in.readUTF(); System.out.println(response[i]); } }
catch(UnknownHostException e){e.printStackTrace();} catch(IOException
e){e.printStackTrace();} } //执行过程中,有一个参数时的构造方法,参数指定服务器地址,取默认端口10745 public
ClientSocketDemo(String hostname) { try {
//创建客户端socket,hostname参数指定服务器地址,端口号为10745 socket = new Socket(hostname,10745);
in = new DataInputStream(socket.getInputStream()); out = new
DataOutputStream(socket.getOutputStream()); String ip =
String.valueOf(socket.getLocalAddress()); String port =
String.valueOf(socket.getLocalPort()); out.writeUTF("Hello Server.This
connection is from client."); out.writeUTF(ip); out.writeUTF(port); response =
new String[3]; for (int i = 0; i response.length; i++) { response[i] =
in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException
e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} }
//执行过程中,有两个个参数时的构造方法,第一个参数hostname指定服务器地址 //第一个参数serverPort指定服务器端口号 public
ClientSocketDemo(String hostname,String serverPort) { try { socket = new
Socket(hostname,Integer.parseInt(serverPort)); in = new
DataInputStream(socket.getInputStream()); out = new
DataOutputStream(socket.getOutputStream()); String ip =
String.valueOf(socket.getLocalAddress()); String port =
String.valueOf(socket.getLocalPort()); out.writeUTF("Hello Server.This
connection is from client."); out.writeUTF(ip); out.writeUTF(port); response =
new String[3]; for (int i = 0; i response.length; i++) { response[i] =
in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException
e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } public
static void main(String[] args) { String comd[] = args; if(comd.length == 0) {
System.out.println("Use localhost(127.0.0.1) and default port");
ClientSocketDemo demo = new ClientSocketDemo(); } else if(comd.length == 1) {
System.out.println("Use default port"); ClientSocketDemo demo = new
ClientSocketDemo(args[0]); } else if(comd.length == 2) {
System.out.println("Hostname and port are named by user"); ClientSocketDemo demo
= new ClientSocketDemo(args[0],args[1]); } else System.out.println("ERROR"); } }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
【ServerSocketDemo.java 服务器端Java源代码】 import java.net.*; import java.io.*; public
class ServerSocketDemo { //声明ServerSocket类对象 ServerSocket serverSocket;
//声明并初始化服务器端监听端口号常量 public static final int PORT = 10745; //声明服务器端数据输入输出流
DataInputStream in; DataOutputStream out; //声明InetAddress类对象ip,用于获取服务器地址及端口号等信息
InetAddress ip = null; //声明字符串数组对象request,用于存储从客户端发送来的信息 String request[];
public ServerSocketDemo() { request = new String[3]; //初始化字符串数组 try {
//获取本地服务器地址信息 ip = InetAddress.getLocalHost();
//以PORT为服务端口号,创建serverSocket对象以监听该端口上的连接 serverSocket = new ServerSocket(PORT);
//创建Socket类的对象socket,用于保存连接到服务器的客户端socket对象 Socket socket =
serverSocket.accept(); System.out.println("This is
server:"+String.valueOf(ip)+PORT); //创建服务器端数据输入输出流,用于对客户端接收或发送数据 in = new
DataInputStream(socket.getInputStream()); out = new
DataOutputStream(socket.getOutputStream()); //接收客户端发送来的数据信息,并显示 request[0] =
in.readUTF(); request[1] = in.readUTF(); request[2] = in.readUTF();
System.out.println("Received messages form client is:");
System.out.println(request[0]); System.out.println(request[1]);
System.out.println(request[2]); //向客户端发送数据 out.writeUTF("Hello client!");
out.writeUTF("Your ip is:"+request[1]); out.writeUTF("Your port
is:"+request[2]); } catch(IOException e){e.printStackTrace();} } public static
void main(String[] args) { ServerSocketDemo demo = new ServerSocketDemo(); } }
或者看这里java外网聊天室:
参考地址:
第一个问题 qq聊天室 必须能 用vb都可以做
第二个问题 vb.net插入数学公式 可以把这些公式封装到一个类中,调用就是了
1. error_Renamed = FirmwareVersionGet(SocketID, Buffer)
执行FirmwareVersionGet函数,返回值赋值给error_Renamed。
根据FirmwareVersionGet函数名称估计是取得Firmware的版本号。
2. TCP_CloseSocket((SocketID))
执行TCP_CloseSocket函数,根据名字功能估计是关闭TCP连接。
3. ret = ErrorStringGet(SocketID, error_Renamed, Buffer)
执行ErrorStringGet函数,返回值赋值给ret。
根据函数名称估计是取得异常(错误)文字资料说明。
4. LogWrite(vbCrLf "Port Close" Buffer)
执行LogWrite函数,根据名字功能估计是写Log记录。
5. LogWrite(vbCrLf CStr(error_Renamed))
同上,
里面的CStr(error_Renamed)是什么意思?我查过了想确认。是把error_Renamed转为字符型数据,前面没有空格,对吧。正确
6. error_Renamed = PositionerSGammaParametersGet(SocketID, PositionerName3, vel, acc, Jerkmax, Jerkmin)
执行PositionerSGammaParametersGet函数,返回值赋值给error_Renamed 。
根据函数名称估计是取得位置参数。
将光标放在该函数上,单击鼠标右键,点选Definition(vb.net是Go To Definition)
7. error_Renamed = GroupMoveAbsolute(SocketID, txtGroup.Text, 3, dbl_arry(0))
估计是将某群组移动到指定位置吧,这个比较难猜。
8. error_Renamed = GroupPositionCurrentGet(SocketID, PositionerName1, 1, position)
估计是取得某群组的当前位置
9. Public CommOpened As Boolean 好多程序段中都有If CommOpened = False Then 那么下面的程序才能执行,我想问的是 在怎么才能控制布尔型变量CommOpened 为TURE 或FALSE呢?好多程序都是在这个条件下才能执行下一部分的。
你看看是否有CommOpened=函数(参数[可选])这一类的语句,又或者将Commopened作为参数传入某函数,而该参数是Byref来定义的。这些语句都会变更变量的值。
10. Buffer = New String(Chr(0), 512 + 1)
将513个Chr(0)连成字符串赋值给Buffer.
11. If CommOpened = FalseThen
SocketID = TCP_ConnectToServer(IPAddress, IPPort, 10)
问题 CommOpened = False这一点怎么控制呢,布尔的如何让他为False呢?
第9题已回答
SocketID = TCP_ConnectToServer(IPAddress, IPPort, 10)
建议TCP连接,将ID赋值 给SocketID.
If SocketID -1 Then
error_Renamed = FirmwareVersionGet(SocketID, Buffer)
问题 SocketID是什么,为什么不等于1才执行下的程序。可以赋其他的值吗?
根据你提供的代码,SockedID在这里的定义应该是TCP成功连接後的一个连接身份证号(成功的话通常都是一个大於0的值),如果是-1的话则表示连接不成功,只是不是-1的话就表示成功。
FirmwareVersionGet(SocketID, Buffer)
第一题已解释。
LogWrite(vbCrLf Buffer)
第4题已解释。Buffer的值第9题已解释,就如CommOpened如何赋值的道理一样。
12. TCP_CloseSocket((SocketID))
第二题已解释
SocketID = -1
第11题已解释
13. If CommOpened = TrueThen
error_Renamed = FirmwareVersionGet(SocketID, Buffer)
第11题已解释
14. Dim vel AsDouble
txtVelX.Text = Str(vel)
vel没有具体的值,这个程序不管用吧,在没有具体值的情况下不能用吧。调试了一个返回值为0.实际程序里面就是这样写的,不解。
vel可能为任意值,如果是VB6的话,未初始化的变量一般为0.
15. If CommOpened = True Then
error_Renamed = GroupInitialize(SocketID, GroupName)
当CommOpened这个变量为True时,执行GroupInitialize函数,并将返回值赋值给error_Renamed.GroupInitialize估计是某群组初始化函数。
16. If CommOpened = TrueThen
error_Renamed = GroupHomeSearch(SocketID, GroupName)
GroupHomeSearch这个函数很难猜出它的功能,估计是搜寻某群组吧。
17. If CommOpened = TrueThen
error_Renamed = GroupKill(SocketID, GroupName)
GroupKill估计是删除某群组
18. Text1.AppendText(Logstr vbCrLf)
Text1如果是Textbox控件的话,这个语句则表示在Text1这个TextBox内添加变量Logstr的内容再加上一个回车符
Text1.ScrollToCaret()Textbox将滚动条自动滚动到插入符的位置。
综合你以上问题,这个应该是一个用VB.net写的一个聊天室程序。
‘客户端向这样写:在窗体说放两个文本框、两个标签、两个按钮、一个列表框
Imports System.Net
Imports System.Net.Sockets
Imports System.IO
Imports System.Threading
Public Class Form1
'网络基础数据流
Private ns As NetworkStream
Private swriter As StreamWriter
Private nsread As StreamReader
Private tcpclient As TcpClient
Private tcpconnected As Boolean = False
Private clisocket As Socket
Private mythread As Thread
'发送
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.TextBox2.Text "" Then
swriter.WriteLine(Me.TextBox2.Text)
swriter.Flush()
Me.TextBox2.Text = ""
Else
MessageBox.Show("发送信息不能为空!", "错误提示")
End If
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'建立连连接
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ipremote As IPAddress
Dim tcpclient As TcpClient
Try
ipremote = IPAddress.Parse(Me.TextBox1.Text)
Catch ex As Exception
MessageBox.Show("IP地址不合法!", "错误提示")
End Try
Try
tcpclient = New TcpClient(Me.TextBox1.Text, 8000)
ns = tcpclient.GetStream
swriter = New StreamWriter(ns)
Me.StatusBar1.Text = "已经连接上"
Me.Button2.Enabled = False
Me.Button1.Enabled = True
tcpconnected = True
Catch ex As Exception
MessageBox.Show("无法与远程8000端口建立连接!", "错误提示")
End Try
End Sub
Private Sub listen()
Try
Dim tcplistener As New TcpListener(IPAddress.Parse("127.0.0.1"), 8000)
tcplistener.Start()
tcpclient = tcplistener.AcceptTcpClient
ns = tcpclient.GetStream()
nsread = New StreamReader(ns)
While True
Dim msg As String = nsread.ReadLine
If msg = "stop" Then
tcplistener.Stop()
ns.Close()
nsread.Close()
mythread.Abort()
Else
Dim mytime As String = DateTime.Now.ToShortTimeString
Me.ListBox1.Items.Add(mytime + " " + msg)
End If
End While
Catch ex As System.Security.SecurityException
MessageBox.Show("侦听失败!", "错误")
End Try
End Sub
End Class
VB.NET Code
My.Computer.Audio.Play("SoundFile.wav", AudioPlayMode.BackgroundLoop) ‘连续循环播放
My.Computer.Audio.Stop() ‘停止播放
My.Computer.Audio.Play("C:\WINDOWS\Media\Windows XP 注销音.wav", AudioPlayMode.WaitToComplete) ’仅播放一次
SoundFile.wav是您的音频文件,自己更换一下即可。
希望能帮到您