當前位置:首頁 » 編程語言 » 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 做即使通訊

沒有用框架?用的長連接?報錯信息有嗎?有的話貼出來

熱點內容
蘋果連接id伺服器出錯是怎麼回事 發布:2024-09-20 08:01:07 瀏覽:502
編程鍵是什麼 發布:2024-09-20 07:52:47 瀏覽:651
學考密碼重置要求的證件是什麼 發布:2024-09-20 07:19:46 瀏覽:477
電腦主伺服器怎麼開機 發布:2024-09-20 07:19:07 瀏覽:728
2022款瑞虎升級哪些配置 發布:2024-09-20 06:59:07 瀏覽:264
資料庫與asp 發布:2024-09-20 06:55:25 瀏覽:727
python解釋編譯 發布:2024-09-20 06:52:57 瀏覽:648
舞蹈豐收腳本 發布:2024-09-20 06:36:26 瀏覽:595
linux進程埠號 發布:2024-09-20 06:36:11 瀏覽:80
派派怎麼改密碼忘了 發布:2024-09-20 06:25:49 瀏覽:780