当前位置:首页 » 编程语言 » java通讯

java通讯

发布时间: 2022-01-11 19:17:44

A. 求java即时通讯的一个简单功能代码

20分!!!??(⊙o⊙)
给你这个做参考吧。自己改一下就行了。(共两个文件)
//ChatClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

public class ChatClient extends Frame {
Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;
private boolean bConnected = false;

TextField tfTxt = new TextField();

TextArea taContent = new TextArea();

Thread tRecv = new Thread(new RecvThread());

public static void main(String[] args) {
new ChatClient().launchFrame();
}

public void launchFrame() {
setLocation(400, 300);
this.setSize(300, 300);
add(tfTxt, BorderLayout.SOUTH);
add(taContent, BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent arg0) {
disconnect();
System.exit(0);
}

});
tfTxt.addActionListener(new TFListener());
setVisible(true);
connect();

tRecv.start();
}

public void connect() {
try {
s = new Socket("127.0.0.1", 8888);
dos = new DataOutputStream(s.getOutputStream());
dis = new DataInputStream(s.getInputStream());
System.out.println("connected!");
bConnected = true;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

public void disconnect() {
try {
dos.close();
dis.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}

/*
try {
bConnected = false;
tRecv.join();
} catch(InterruptedException e) {
e.printStackTrace();
} finally {
try {
dos.close();
dis.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
*/
}

private class TFListener implements ActionListener {

public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim();
//taContent.setText(str);
tfTxt.setText("");

try {
//System.out.println(s);
dos.writeUTF(str);
dos.flush();
//dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}

}

}

private class RecvThread implements Runnable {

public void run() {
try {
while(bConnected) {
String str = dis.readUTF();
//System.out.println(str);
taContent.setText(taContent.getText() + str + '\n');
}
} catch (SocketException e) {
System.out.println("退出了,bye!");
} catch (EOFException e) {
System.out.println("推出了,bye - bye!");
} catch (IOException e) {
e.printStackTrace();
}

}

}
}
//ChatServer.java
import java.io.*;
import java.net.*;
import java.util.*;

public class ChatServer {
boolean started = false;
ServerSocket ss = null;

List<Client> clients = new ArrayList<Client>();

public static void main(String[] args) {
new ChatServer().start();
}

public void start() {
try {
ss = new ServerSocket(8888);
started = true;
} catch (BindException e) {
System.out.println("端口使用中....");
System.out.println("请关掉相关程序并重新运行服务器!");
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}

try {

while(started) {
Socket s = ss.accept();
Client c = new Client(s);
System.out.println("a client connected!");
new Thread(c).start();
clients.add(c);
//dis.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

class Client implements Runnable {
private Socket s;
private DataInputStream dis = null;
private DataOutputStream dos = null;
private boolean bConnected = false;

public Client(Socket s) {
this.s = s;
try {
dis = new DataInputStream(s.getInputStream());
dos = new DataOutputStream(s.getOutputStream());
bConnected = true;
} catch (IOException e) {
e.printStackTrace();
}
}

public void send(String str) {
try {
dos.writeUTF(str);
} catch (IOException e) {
clients.remove(this);
System.out.println("对方退出了!我从List里面去掉了!");
//e.printStackTrace();
}
}

public void run() {
try {
while(bConnected) {
String str = dis.readUTF();
System.out.println(str);
for(int i=0; i<clients.size(); i++) {
Client c = clients.get(i);
c.send(str);
//System.out.println(" a string send !");
}
/*
for(Iterator<Client> it = clients.iterator(); it.hasNext(); ) {
Client c = it.next();
c.send(str);
}
*/
/*
Iterator<Client> it = clients.iterator();
while(it.hasNext()) {
Client c = it.next();
c.send(str);
}
*/
}
} catch (EOFException e) {
System.out.println("Client closed!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(dis != null) dis.close();
if(dos != null) dos.close();
if(s != null) {
s.close();
//s = null;
}

} catch (IOException e1) {
e1.printStackTrace();
}

}
}

}
}

B. java和通讯行业哪个好

学java,没错的,java是跨平台的语言,不用担心没有java的用处

C. Java 进行通信,请问有什么好的实现思路吗

1
Java
中输入

输出流概念
Java
语言的优点主要表现在

简单、
面向对象、
多线程、
分布性、
体系结构中立、
安全性等方面。
主要体现在
Java
实现了自动的垃
圾收集

简化了内存管理的工作

提供了简单的类机制和动态的构架模型

多线程使应用程序可以同时进行不同的操作

处理不同
的事件

是一种面向网络的语言

Java
程序能在网络的任何地方运行

且可防止病毒的入侵。
过滤流
DataInputStream

DataOutputStream
除了分别作为
FilterInputStream

FilterOutputStream
的子类外

还分别实现了接

DataInput

DataOutput
。接口
DataInput
中定义的方法主要包括从流中读取基本类型的数据、
读取一行数据、
或者读取指定长度
的字节数


readBoolean()

readInt()

readLine()

等。
接口
DataOutput
中定义的方法主要是向流中写入基本类型的数据或者写入一定
长度的字节数组


writeChar()

writeDouble()

DataInputStream
可以从所连接的输入流中读取与机器无关的基本类型数据

用以实现
一种独立于具体平台的输入方式

DataInputStream
可以向所连接的输出流写入基本类型的数据。
2
Socket
机制
Socket
是面向客户

服务器模型设计的

网络上的两个程序通过一个双向的通讯连接实现数据的交换

这个双向链路的一端称
为一个
Socket

Socket
通常用来实现客户方和服务方的连接。
客户程序可以向
Socket
写请求

服务器将处理此请求

然后通过
Socket
将结果返回给用户。
Socket
通信机制提供了两种通讯方式

有联接和无联接方式

分别面向不同的应用需求。
3
客户机

服务器通信的实现

两端通过
Socket
机制进行连接来实现
Application

Applet
的通信

正是由于
Java
系统具有基于
Socket
的灵活通信机制

因而
其应用程序能自由地打开和访问网络上的对象

就象在本地文件系统中一样。
才能实现
Applet
之间的通信

Applet
之间的通信使用
Applet
Context
类的
getApplet()
方法。
<applet
ITJOB
code=applet1.class
width=200
height=200
name=first>
只要在程序中加入
Applet
oneap-
plet=getAppletContext().getApplet(

first

);
便可使用
name

first

Applet
中的方法了。
程序如下

import
java.io.*;
import
java.net.*;
import
java.lang.*

D. Java 类之间的通信

顶楼上!我也感觉你说的这个就是一个方法调用另一个方法,触发这个事件是个判定条件??判定成功返回TRUE就调用另一个方法?然后传递数据? 不知道这样说对不对,下面是个相当简单的比方了,对了就采纳吧!O(∩_∩)O哈哈~
public void A(){
int i =0;
if(i=0){
String str = "";
B(str) ;
}
}
public void B(String str){

}

E. java如何实现网络通讯的,用到哪方面知识。举例说说。。。。

当服务器启动时即建立并启动等待客户端联机时线程,然后每当有客户端要联机时。程序便在建立一个可以等待客户端联机的线程,利用维护客户端联机时线程未读取客户端付来的消息,然后将此消息加入一个广播队列中,接着由广播消息到客户端的线程来广播队列中的消息的消息给每一个客户端。客户端的设计比较简单,主要是提供一些必要的用户界面,这前涉到版面的布局管理,AW7的组件和事件处理方法的基本操作。另外,客户端也会用到一个线程,主要是负责接受由服务器端付来的广播消息。

A. 能与服务器程序联机并且建立I/O管道;

B. 能发送消息到服务器程序。首先分别了解在服务器端和客户端的程序设计方法与体系结构。在服务器端使用了四个线程,其功能如下:

C. 等待客户端联机

D. 维护客户端联机

E. 广播消息到客户端

关键字:聊天室,服务器,客户线程,套接字

F. 请帮忙用java socket写个通信类,通信协议是如下,谢谢!

这个协议要花很久时间的,估计在网络知道没人会给你做出来
不过这个 不是什么难东西 懂得基础的socket知识即可 至少稍微有些繁琐罢了
加油

G. JAVA Socket

呵呵,我学Java也遇到了很多问题,有时候都不知道怎么办才好。学习一门语言不是件容易的事情,要坚持下去!我能说的也就只有这些了,怎么做还要看你自己!
加油吧!

H. JAVA即时通讯怎么实现

UDP

I. JAVA和c++是怎么进行通讯的

1. Java Native Interface(JNI)
中文为JAVA本地调用, 从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。

2. Socket通信

3. Web service

J. java 做即使通讯

没有用框架?用的长连接?报错信息有吗?有的话贴出来

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:760
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:660
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:308
子弹算法 发布:2024-09-20 08:41:55 浏览:286
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:814
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:159
sql数据库安全 发布:2024-09-20 08:31:32 浏览:91
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:505
编程键是什么 发布:2024-09-20 07:52:47 浏览:655
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:479