java通訊
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 做即使通訊
沒有用框架?用的長連接?報錯信息有嗎?有的話貼出來