问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求一个用JAVA写的网络编程的网络聊天系统,能够实现两个人聊天信息收发。

发布网友 发布时间:2022-04-23 21:29

我来回答

2个回答

热心网友 时间:2023-10-10 05:52

这个是客户端
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class client extends Frame implements ActionListener{
int i=1;Frame f;
TextField ip,port;
Label Lip,Lport;
Button connect,exit;
public static void main(String args[])
{client c1 = new client();
c1.init();
}
public void init()
{
f=new Frame("client connection");
f.setLayout(new FlowLayout());
ip =new TextField("localhost");
port =new TextField("8189",5);
Lip=new Label("ip address");
Lport=new Label("port");
connect=new Button("connect");
exit=new Button("exit");
connect.addActionListener(this);
exit.addActionListener(this);
f.add(Lip);
f.add(ip);
f.add(Lport);
f.add(port);
f.add(connect);
f.add(exit);
f.setSize(500,60);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==exit)
System.exit(0);
if(e.getSource()==connect)
{
new Thread(new threadclient(ip.getText(),port.getText(),i)).start();
i++;
}
}
}
class threadclient extends Frame implements Runnable,ActionListener{
String ip,port;
int no;
Frame f;
TextArea ta;
TextArea name;
TextField tf;
Button send,bye;
InputStream ins;
Socket s;
PrintStream out1;
BufferedReader in;
BufferedWriter out;
threadclient(String n,String m,int i)
{
ip=n;
port=m;
no=i;
}
public void run(){
f=new Frame("client NO." +no);
f.setLayout(new FlowLayout());
ta=new TextArea("",10,30,TextArea.SCROLLBARS_BOTH);
tf=new TextField("",20);
send=new Button("send");
bye=new Button("bye");
send.addActionListener(this);
bye.addActionListener(this);
f.add(ta);
f.add(tf);
f.add(send);
f.add(bye);
f.setSize(300,300);
f.setVisible(true);
Integer tmp=new Integer(port);
int portint =tmp.intValue();
try
{
s=new Socket(ip,portint);
in=new BufferedReader(new InputStreamReader(s.getInputStream()));
out1=new PrintStream(s.getOutputStream());
ta.append(in.readLine()+"\n");
}catch(Exception e)
{
System.out.println(e.getMessage()+" ss");
}
}
public void send(String txt){
try{
out1.println(txt);
out1.flush();
ta.append(in.readLine()+"\n");
}catch(IOException e)
{
System.out.println(e.getMessage()+"send");
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==bye){
send("BYE");
System.exit(0);
}
if (e.getSource()==send)
send(tf.getText());
}
}

这个是服务器
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
public class server {
private static Map<String,Socket> clientMap=new HashMap<String,Socket>();
public static void main(String[] args) {
int i = 1;
try {
ServerSocket s = new ServerSocket(8189);
for (;;) {
Socket incoming = s.accept();
System.out.println("连接成功" + i);
ThreadedEchoHandler teh=new ThreadedEchoHandler(incoming, i);
teh.start();
String name=teh.getClientname();
clientMap.put(name,incoming);
i++;
}
} catch (Exception e) {
System.out.println(e);
}
}
}
class ThreadedEchoHandler extends Thread {
Frame f;
TextArea ta;
TextField tf;
Button send, bye;
InputStream ins;
Socket s;
PrintStream out1;
BufferedReader in;
PrintWriter out;
public ThreadedEchoHandler(Socket i, int c) {
incoming = i;
counter = c;
f=new Frame("server");
f.setLayout(new FlowLayout());
ta=new TextArea("",10,30,TextArea.SCROLLBARS_BOTH);
tf=new TextField("",20);
send=new Button("send");
bye=new Button("bye");
send.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
send(tf.getText());

}

});
bye.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
send("bye");

}

});
f.add(ta);
f.add(tf);
f.add(send);
f.add(bye);
f.setSize(300,300);
f.setVisible(true);
}

public String getClientname() {
try {
in = new BufferedReader(new InputStreamReader(
incoming.getInputStream()));
out = new PrintWriter(incoming.getOutputStream(), true);
return in.readLine();
} catch (IOException e) {
System.out.println(e.getMessage()+"get");
}
return null;
}
public void send(String context){
out.println(context);
out.flush();
}
public void run() {
try {

boolean done = false;
while (!done) {
String str = in.readLine();

if (str == null)
done = true;
else {
out.println("Echo(" + counter + "):" + str);
ta.append("Echo(" + counter + "):" + str+"\n");
if (str.trim().equals("BYE"))
done = true;
}
}
incoming.close();
} catch (Exception e) {
System.out.println(e.getMessage()+"run");
}
}
private Socket incoming;
private int counter;
}

这个鸟东西是个新手写的。唉,太烂了,我无力吐槽。追问这个不行啊,太菜了。有没有好点的?

追答有模版你就知道怎么搞了嘛。写这个东西毫无技术含量。就是一个socket通信+awt界面,稍微瞄一瞄你就会了,相信自己。

热心网友 时间:2023-10-10 05:52

这个网上多的很。
我要一份用java网络编程写的点对点的两人聊天程序(TCP和UDP)?_百度...

Client端:import java.io.*;import java.net.*;public class TalkClient { public static void main(String args[]) { try{ Socket socket=new Socket("127.0.0.1",4700);BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));PrintWriter os=new PrintWriter(socket.getOutpu...

java是如何实现客服在线聊天功能的?

实现在线聊天功能的方式有很多种,以下是用Java语言实现的一种方法:建立套接字服务器:Java有内置的套接字类可以实现服务器端。在服务器端,你可以创建一个套接字,监听来自客户端的连接。建立客户端:用Java编写客户端代码,让用户连接到服务器端。连接:客户端与服务器端连接后,你可以使用流来实现...

使用Java网络编程编写SIP消息的收发,TCP和UDP有什么区别?

汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不...

求助高人:编辑简单聊天工具

用一个Locked属性设定为True的文本框来记录所有客户发送的消息,用一个可编辑的文本框来输入客户要发送的消息,这样就基本实现了聊天室的功能。程序代码服务器:Option ExplicitDim guest As Integer '在线客户数量计数器Dim j As Integer '已接客户数量计数器Dim k As Integer '向在线客户发送消息数量计数器Dim t As...

如何用套接字编程一个网络聊天程序

用java进行网络编程确实很方便,很容易上手。这几天用java进行socket编程,收获不少。首先,进行服务端的编程,作为服务端,编程主要按下面几个步骤进行:// 1. 创建socket ServerSocket ss = new ServerSocket(PortNumber);Socket s = ss.accept(); //监听器,产生阻塞,直到有连接才停止阻塞。// ...

有一个任务,说是用JAVA编程,编一个类似网络爬虫的东西,可以将网页上...

如果单线程来实现,就是一个主程序去爬,不断遍历。很简单的。如果多线程,就主程序控制多线程去进行遍历。最好用一个线程池来进行管理,否则会随着遍历系统资源消耗过大的。

谁能做IM聊天软件开发?

IM聊天软件开发需要具备一定的软件开发技能和经验。以下是能够进行IM聊天软件开发的主要人群:1.软件开发者:具备编程经验,特别是对于Java、C++、Python等编程语言有熟练掌握的开发者。2.网络工程师:了解网络通信原理,熟悉TCP/IP协议栈,具备网络编程的经验。3.前端开发者:对于实现用户界面和用户体验有...

Java网络聊天室实训能力测试

import java.net.Socket;import java.io.*;public class Client extends Thread // 定义一个Client线程类 { private Socket m_socket;// 定义一个socket对象;public Client()// 默认构造函数 { } public boolean ConnToServer(String strip, int port) throws Exception// 连接指定IP和端口的服务器...

开发一个手机聊天app需要什么软件?

编程语言:移动应用程序开发最常用的编程语言是 Java(用于 Android 应用程序开发)、Swift(用于 iOS 应用程序开发)和 React Native(用于跨平台应用程序开发)。后端服务:为了支持应用程序的聊天功能,您需要一个后端服务来处理消息传递和存储。 您可以使用 Node.js 或 Ruby on Rails 等服务器端编程...

java能开发视频聊天吗

首先你要学习一下java的网络编程方面的东西,像TCP/IP UDP协议等等的东西,因为要编写视频聊天程序,这些理论性的东西是必须的。现在假设你已经可以编写出简单功能的网络聊天功能的软件了,想在就是要用你编写软件驱动起你的摄像头了。首先你要确保你的摄像头的开发商已经给了你该摄像头的驱动接口,有...

网络编程和网页编程 java的网络编程重要吗 网络编程的认识 网络编程java常用方法 网络编程有什么用 网络编程是做什么的 java 网络编程 网络编程有哪些 网络编程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婷美矿物泉补水精华的滋润度怎么样? 婷美矿物泉补水睡眠面膜的保质期 求一部美国地理/灾难/科幻片名,明珠台有播过 日本有哪些抗皱效果显著的眼霜值得入手? ...回到中国找寻这位中国母亲的电影名字叫什么。谢谢 校园卡浏览不良网站会受到什么惩罚? 校园卡会监控浏览记录吗? 济南现在治疗慢性鼻炎的方法有哪些?最好的是什么?? 《结婚后我们恋爱吧!》最新txt全集下载 搞笑谐音! 想用Java web实现在线聊天,求大神指点。 我要一份用java网络编程写的点对点的两人聊天程序(TCP和UDP)? 中国移动苹果合约机套餐是什么意思 风水学说属于中国的道教文化吗? 怎样用佛法风水化解邪气 佛法与风水的关系 风水与佛教有关系吗??? 道家风水有用么? 屋子风水不好,或祖坟风水不好,对信仰佛教并且有所修行的人会造成影响吗? 风水和佛教或者道家到底有什么关系 佛教与风水 风水学修成需要多长时间 风水问答:修道与风水有什么关系 佛教怎样看待风水 我想学习风水,不知道从哪开始啊。哪位大师指点一下? 修行与风水命理有关系吗 “一命二运三风水 四修阴德五读书”这是谁说的,含义是什么,有什么关联... 怎样能成为风水大师。 要想学习风水,最基本的应该从哪开始学? 风水有没有*的*,像丹道法诀?我是修丹道的,想体会一下山川于心的感觉 谢谢 高手指导:用java 网络编程编写两台计算机的即时通讯软件。要看什么内容? java网络编程可以一个客户端分多个线程通讯吗。类似于QQ一边聊天一边发送文件 Java网络编程,客户端和服务端相互发送信息,可是我写的双方都没读到对方发送的信息,代码如下 王者荣耀中百里守约的出装有哪些呢? 百里守约最高伤害出装 百里守约,什么装备能一枪秒人 王者荣耀百里守约出什么装伤害最高 王者荣耀百里守约怎么出装 百里守约高伤害出 王者荣耀百里守约暴力怎么出装 百里守约暴力出装推荐 王者荣耀中百里守约出什么装 王者荣耀百里守约怎么出装伤害最高 百里守约 百里守约攻速好慢,出哪些装备能提高输出呢 王者荣耀百里守约高伤害出装怎么搭配 百里守 京东商城软件开发和测试工程师两个岗位的笔试题一样么 守约高伤害出装怎么搭配 百里守约高伤害装备选择哪个 软件工程师是属于什么行业? 你觉得百里守约怎么出装更好? 月工资过万的工作都有什么? 王者荣耀百里守约出什么装无敌 百里守约无敌装备 月薪一万的工作有哪些?