今天给各位分享javaudpsocket聊天室的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、我想用java中的udp做聊天工具怎么连接局域网两台电脑,举出具体事例,有代码的2、急求一个关于UDP的JAVA实现多人聊天源代码3、java 用udp 如何在聊天界面上显示谁上线4、用java的Udp写聊天程序,为什么不能实现一个端口号同时向两个端口号发送消息?不知如何实现,请高手解答?5、java socket实现两个客户段或多个客户端之间通信,该怎么解决
我想用java中的udp做聊天工具怎么连接局域网两台电脑,举出具体事例,有代码的
首先确定两台电脑都在同一个局域网。两台电脑都要装有java的运行环境,(直接两台电脑都装jdk吧 ,jre也是可以的)把代码分别拷贝到两台电脑上,假如用你的电脑做服务器,另一台电脑做客户端,先起你电脑的服务器,再在你电脑起一个客户端,然后在另一台电脑上再起一个客户端,这样两台电脑的客户端就可以通讯了。
注意:另一台电脑代码上面的IP地址要正确真上你电脑的IP地址
不懂的再继续问
急求一个关于UDP的JAVA实现多人聊天源代码
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;
import java.util.Date;
class Server
{
public Server()
{
try
{
ServerSocket s=new ServerSocket(8888);
Socket ss=s.accept();
OutputStream out=ss.getOutputStream();
DataOutputStream dout=new DataOutputStream(out);
InputStream in=ss.getInputStream();
DataInputStream din=new DataInputStream(in);
System.out.print(din.readUTF()+”!”);
dout.writeUTF(“你已经连接到服务器”+”\t”+”你的地址:”+ss.getInetAddress()+”\t”
+”你的链接端口:”+ss.getLocalPort()+”\n”);
new ReadMessage(din).start();
new SendMessage(dout).start();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new Server();
}
}
//接受客户端信息
class ReadMessage extends Thread
{
private DataInputStream din;
public ReadMessage(DataInputStream din)
{
this.din=din;
}
public void run()
{
String str;
try
{
while (true)
{
str=din.readUTF();
System.out.println(new Date().toLocaleString()+”客户端说:”+str);
if (str.equals(“bye”))
{
System.out.println(“客户端下线!”);
break;
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
// 发出服务器信息
class SendMessage extends Thread
{
private DataOutputStream dout;
public SendMessage(DataOutputStream dout)
{
this.dout=dout;
}
public void run()
{
InputStreamReader inr=new InputStreamReader(System.in);
BufferedReader buf=new BufferedReader(inr);
String str;
try
{
while(true)
{
str=buf.readLine();
dout.writeUTF(str);
if (str.equals(“bye”))
{
System.out.println(“服务器退出!”);
System.exit(1);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import java.net.Socket;
import java.io.IOException;
import java.util.Date;
class Client
{
public Client()
{
try
{
Socket s=new Socket(“192.168.1.2”,8888);
InputStream in=s.getInputStream();
DataInputStream din=new DataInputStream(in);
OutputStream out=s.getOutputStream();
DataOutputStream dout=new DataOutputStream(out);
dout.writeUTF(“服务器你好!我是客户端”);
System.out.println(din.readUTF());
new Thread(new SenderMessage(dout)).start();
new Thread(new ReaderMessage(din)).start();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new Client();
}
}
class ReaderMessage implements Runnable
{
private DataInputStream din;
public ReaderMessage(DataInputStream din)
{
this.din=din;
}
public void run()
{
String str;
try
{
while(true)
{
str=din.readUTF();
System.out.println(new Date().toLocaleString()+”服务器说:”+str);
if (str.equals(“bye”))
{
System.out.println(“服务器已经关闭,此程序自动退出!”);
break;
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
class SenderMessage implements Runnable
{
private DataOutputStream dout;
public SenderMessage(DataOutputStream dout)
{
this.dout=dout;
}
public void run()
{
String str;
InputStreamReader inf=new InputStreamReader(System.in);
BufferedReader buf=new BufferedReader(inf);
try
{
while (true)
{
str=buf.readLine();
dout.writeUTF(str);
if (str.equals(“bye”))
{
System.out.println(“客户端自己退出!”);
System.exit(1);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
java 用udp 如何在聊天界面上显示谁上线
服务器端维护一个在线用户的列表,当一个人上线的时候,这个人放到这个列表中,同时查找这个人的所有好友,并将好友及在线好友的地址发送给这个用户。然后让服务器或者用户本人发送他上线的消息,给每个在线的好友。
每过一段时间,这个人要和服务器ping一下,若这个人没有ping,则向这个人的所有在线好友发送这个人下线的消息。
用java的Udp写聊天程序,为什么不能实现一个端口号同时向两个端口号发送消息?不知如何实现,请高手解答?
使用DatagramSocket和DatagramPacket
其中DatagramSocket使用一个发送的端口号
DatagramPacket的参数
DatagramPacket(bytes[] bytes,int bytes[].length,InetAddress ip, int port);里的port就是目标端口
要向两个端口号发送,需要创建两个DatagramPacket,分别填写两个IP地址和端口号,并用DatagramSocket发送。
另外两个端口需要做监听
要注意ip要为局域网可以畅通无阻,广域网可能导致网管阻止
下面是个例子,发两遍即可。
int SERVER_PORT=7000;
String severIp=”192.168.1.100″;
DatagramSocket clientSocket;
try
{
InetAddress local = InetAddress.getByName(severIp);
DatagramPacket dPacket;
clientSocket = new DatagramSocket;
dPacket = new DatagramPacket(“Hello”.getBytes(“utf-8″),”Hello”.getBytes(“utf-8”).length,
local, SERVER_PORT);
clientSocket.send(dPacket);//这里是发送
byte[] msg = new byte[11246];
DatagramPacket rPacket = new DatagramPacket(msg, msg.length);
clientSocket.receive(rPacket);//这里是接收监听
}
catch (IOException e)
{
e.printStackTrace();
}
clientSocket.close();
java socket实现两个客户段或多个客户端之间通信,该怎么解决
javasocket有两种方式。一种是UDP这个可以直连,不需要服务器。一种是TCP这个是肯定要能过服务器来通信的。所以你说的。链接建立完毕后不再通过服务器!这个可以实现,但会麻烦一些。1.先说一下简单的点的吧。用TCP的方式。你所有的消息都是发给服务器。包含你的IP及通信端口,及对方的IP及通信端口信息。当然这些是隐藏在数据报中的。这样由服务器来进行分发。2.你说的那种方式有点类似TCP与UDP混合。首先启动一个SERVER然后每一个客户端,先要登陆SERVER,并在server上记录下你的IP及通信端口信息,如果你要连接某一个客户端。先要向服务器发出一个申请,获得到方的IP及端口信息,然后进行UDP连接。连接上以后,就是直接发送息,不需要服务器了。javasocket的东西,以前做过一些,所以有思路,但没有现成的代码。有问题再联系。
javaudpsocket聊天室的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javaudpsocket聊天室的信息别忘了在本站进行查找喔。