當前位置:首頁 » 以太坊知識 » java以太坊客戶端配置

java以太坊客戶端配置

發布時間: 2021-04-25 14:26:28

⑴ java寫的客戶端怎麼和伺服器端通信

寫個簡單點的伺服器跟客服端就行了我寫了個很簡單的,只能在一個客戶端跟一個伺服器通信,在控制台輸入下面這個是伺服器import java.io.*;
import java.net.*;
import java.util.Scanner;public class Server
{
public static void main(String[] args)
{
try {
ServerSocket server=new ServerSocket(8888);//定義客戶端的埠號
Socket client=server.accept();//定義一個Socket對象

InputStream is=client.getInputStream();//伺服器接受信息輸入流,也就是接受從伺服器段發送過來的消息
BufferedReader br=new BufferedReader(new InputStreamReader(is));//用bufferedreader包裝下輸入流

OutputStream os=client.getOutputStream();//這是用來給伺服器發送消息的輸出流
PrintStream ps=new PrintStream(os);
Scanner scanner=new Scanner(System.in);//從鍵盤輸入字元串

boolean flag=true;//定義一個死循環,讓伺服器不停的接受從客戶端發送來的字元串
while(flag)
{
String s=br.readLine();//s是從客戶端接受到得字元串
System.out.println(s);

String s2=scanner.nextLine();//s2是寫給客戶端的字元串
ps.println(s2); //給客戶端發送你寫的東西
}
client.close();
} catch (IOException e) {//try 跟catch你不用管,這是用來處理異常的,就是固定格式

e.printStackTrace();
}
}
} 下面是客戶端import java.io.*;
import java.net.*;
import java.util.Scanner;public class Client
{ public static void main(String[] args)
{
try
{
Socket client=new Socket("192.168.--.--",8888);//IP地址是個字元串,埠號是個整數,這個埠號要跟前面你寫的那個一樣,還有IP地址,寫你的機器的IP地址

InputStream is=client.getInputStream();//這邊的兩個流跟上面伺服器的差不多的作用
BufferedReader bf=new BufferedReader(new InputStreamReader(is));

OutputStream os=client.getOutputStream();
PrintStream ps=new PrintStream(os);
Scanner scanner=new Scanner(System.in);
boolean flag=true;
while(flag)//這句話可以讓客戶端不停的說話

⑵ 用java代碼實現客戶端與服務端建立連接

套接字 Socket

import java.net.*;

Server:
ServerSocket server=new ServerSocket(port);//port是埠
Socket socket=server.accept();
//等待客戶機的連接請求,若連接,則創建一套接字,並將返回。

Client:
Socket socket=new Socket("host",port);//host主機名(本機:127.0.0.1)

⑶ 我用Java代碼編寫的一個客戶端界面Client.java,我在編寫個登錄界面Login.java後,

mport java.awt.HeadlessException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;@SuppressWarnings("serial")public class MainFrame extends JFrame {JLabel lbl1 = new JLabel("用戶名:");JLabel lbl2 = new JLabel("密 碼:");JTextField txt = new JTextField("admin",20);JPasswordField pwd = new JPasswordField(20);JButton btn = new JButton("登錄");JPanel pnl = new JPanel();private int error = 0;public MainFrame(String title) throws HeadlessException {super(title);init();}private void init() {this.setResizable(false);pwd.setEchoChar('*');pnl.add(lbl1);pnl.add(txt);pnl.add(lbl2);pnl.add(pwd);pnl.add(btn);this.getContentPane().add(pnl);btn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if ("admin".equals(new String(pwd.getPassword()))){pnl.removeAll();JLabel lbl3 = new JLabel();ImageIcon icon = new ImageIcon(this.getClass().getResource("pic.jpg"));lbl3.setIcon(icon);pnl.add(lbl3);}else{if(error < 3){JOptionPane.showMessageDialog(null,"密碼輸入錯誤,請再試一次");error++;}else{JOptionPane.showMessageDialog(null,"對不起,您不是合法用戶");txt.setEnabled(false);pwd.setEnabled(false);btn.setEnabled(false);}}}});}public static void main(String[] args) {MainFrame frm = new MainFrame("測試");frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setBounds(100, 100, 300, 120);frm.setVisible(true);}}

⑷ 用Java 的socket實現客戶端的功能

//服務端程序:
importjava.io.*;
importjava.net.*;

publicclassTCPServer{
publicstaticvoidmain(String[]args)throwsIOException{
newTCPServer().init();
}
@SuppressWarnings("static-access")
privatevoidinit()throwsIOException{
@SuppressWarnings("resource")
ServerSocketserver=newServerSocket(1000);
Socketclient=null;
while(true){
try{
client=server.accept();
BufferedInputStreambis=newBufferedInputStream(client.getInputStream());
byte[]b=newbyte[1024];
intlen=0;
Stringmessage="";
while((len=bis.read(b))!=-1){
message=newString(b,0,len);
System.out.print("客戶端:"+client.getInetAddress().getLocalHost().getHostAddress()+"發來消息:"+message);
if("byte".equals(message.trim()))
client.close();
PrintWriterpw=newPrintWriter(client.getOutputStream(),true);
pw.println(message);
}
}catch(Exceptione){
System.err.println("客戶端:"+client.getInetAddress().getLocalHost().getHostAddress()+"已斷開連接!");
}
}
}
}
//客戶端程序:
importjava.io.*;
importjava.net.Socket;

{
publicstaticvoidmain(String[]args)throwsIOException{
newTCPClient().init();
}
privatevoidinit()throwsIOException{
@SuppressWarnings("resource")
finalSocketclient=newSocket("127.0.0.1",1000);
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
Stringsend="";
while(true){
send=in.readLine();
PrintWriterout=newPrintWriter(client.getOutputStream(),true);
if(!"byte".equals(send.trim()))
out.println(send);
else{
out.println(send);
System.exit(0);
}
newThread(newTCPClient(){
@SuppressWarnings("static-access")
publicvoidrun(){
try{
BufferedInputStreambis=newBufferedInputStream(client.getInputStream());
byte[]b=newbyte[1024];
intlen=0;
while((len=bis.read(b))!=-1){
System.out.println("伺服器:"+client.getInetAddress().getLocalHost().getHostAddress()+"發來消息:"+newString(b,0,len).trim());
}
}catch(IOExceptione){
System.err.println("連接伺服器失敗!");
}
}
}).start();
}
}
publicvoidrun(){}
}

//伺服器測試結果:

客戶端:192.168.0.200發來消息:001 byte

客戶端:192.168.0.200發來消息:byte

客戶端:192.168.0.200 已斷開連接!

客戶端:192.168.0.200發來消息:adasd

客戶端:192.168.0.200 已斷開連接!

//客戶端測試結果:

---001號客戶端--

001byte

伺服器:192.168.0.200發來消息:001byte

byte //001禮貌說跟伺服器說byte

---002號客戶端--

adasd //002客戶端直接關閉程序

伺服器:192.168.0.200發來消息:adasd

⑸ 用Java編寫創建一對客戶端/伺服器程序,利用數據報將一個文件從一台主機傳送到另一

下面是我自己寫的一個讀取並顯示txt文件的demo,希望對您有幫助。
publicclassClient{
publicstaticvoidmain(String[]args){
ClientFramef=newClientFrame();
}
}

importjava.awt.BorderLayout;
importjava.awt.Container;
importjava.awt.Dimension;
importjava.awt.GridLayout;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.Socket;
importjava.net.UnknownHostException;
importjava.util.Vector;

importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JList;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.event.ListSelectionEvent;
importjavax.swing.event.ListSelectionListener;

,ListSelectionListener{
privateJListlist=null;
privateJButtonsbtn=null;
privateJButtoncbtn=null;
privateVectorv=null;
privateJTextAreatxt=null;
privateContainercontrol=null;
privateContainerbtn=null;
privateSocketclient=null;
privateDataInputStreamreader=null;
privateDataOutputStreamwriter=null;

publicClientFrame(){
this.list=newJList();
this.list.setBorder(BorderFactory.createTitledBorder("文件列表"));
this.list.addListSelectionListener(this);

this.sbtn=newJButton("顯示");
this.sbtn.addActionListener(this);
this.cbtn=newJButton("清除");
this.cbtn.addActionListener(this);

this.control=newContainer();
this.control.setPreferredSize(newDimension(150,400));
this.control.setLayout(newBorderLayout());
this.control.add(newJScrollPane(this.list),BorderLayout.CENTER);
this.btn=newContainer();
this.btn.setLayout(newGridLayout(1,2));
btn.add(sbtn);
btn.add(cbtn);
this.control.add(this.btn,BorderLayout.SOUTH);

this.txt=newJTextArea();
this.txt.setEditable(false);
this.txt.setSize(350,400);

this.setTitle("客戶端");
this.setSize(500,400);
this.setVisible(true);
DimensiondisplaySize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((displaySize.width-this.getWidth())/2,(displaySize.height-this.getHeight())/2);
this.setLayout(newBorderLayout());
this.add(this.control,BorderLayout.WEST);
this.add(newJScrollPane(this.txt),BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

try{
//this.client=newSocket("192.168.32.34",6666);
this.client=newSocket("192.168.1.100",6666);
this.reader=newDataInputStream(client.getInputStream());
this.writer=newDataOutputStream(client.getOutputStream());
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}

publicvoidactionPerformed(ActionEventevent){
if(event.getSource()==sbtn){
if(v==null){
v=newVector();
}
else{
v.clear();
}

try{
writer.writeUTF("getfilelist");
writer.flush();
Stringt=reader.readUTF();
while(t!=null&&!t.equals("")){
v.add(t);
t=reader.readUTF();
}
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
this.list.setListData(v);
}

if(event.getSource()==cbtn){
this.txt.setText("");
}
}

publicvoidvalueChanged(ListSelectionEvente){
inti=this.list.getSelectedIndex();
if(!this.list.getValueIsAdjusting()&&i!=-1){
try{
writer.writeUTF("getfilecontent_"+i);
writer.flush();
Stringtmp=reader.readUTF();
this.txt.setText(tmp);
}catch(IOExceptione1){
e1.printStackTrace();
}
}
}

}

importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.Reader;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.util.ArrayList;
importjava.util.Iterator;

publicclassServer{
staticArrayList<File>fileArray=newArrayList<File>();
publicstaticvoidmain(Stringargs[]){
ServerSocketserver=null;
Socketclient=null;
Stringcmd="";
try{
server=newServerSocket(6666);
client=server.accept();

DataInputStreamreader=newDataInputStream(client.getInputStream());
DataOutputStreamwriter=newDataOutputStream(client.getOutputStream());

while(true){
cmd=reader.readUTF();
System.out.println(cmd);
if(cmd.equals("getfilelist")){
fileArray.clear();
//fileArray=getFile(newFile("D:/tmp"));
fileArray=getFile(newFile("D:/學習/教程/學習筆記"));
Stringfn="";
for(intk=0;k<fileArray.size();k++){
fn=fileArray.get(k).getName();
writer.writeUTF(fn);
writer.flush();
}
writer.writeUTF("");
}
if(cmd.startsWith("getfilecontent_")){
inti=Integer.parseInt(cmd.split("_")[1]);
Filef=fileArray.get(i);
Readerin=newInputStreamReader(newFileInputStream(f));
inttempbyte;
Stringstr="";
while((tempbyte=in.read())!=-1){
str+=(char)tempbyte;
//System.out.println(str);
}
in.close();
writer.writeUTF(str);
}
}

}catch(IOExceptione){
e.printStackTrace();
}
}

privatestaticArrayList<File>getFile(Filef){
File[]ff=f.listFiles();
for(Filechild:ff){
if(child.isDirectory()){
getFile(child);
}else{
fileArray.add(child);
}
}
returnfileArray;
}
}

⑹ Java用來編寫客戶端還是伺服器端

兩者都可以...不過java的垃圾回收機制因為是自動的所以執行客戶端程序的時候效率特別慢...一般用於伺服器端或WEB開發...學java的重點就是以j2ee技術為核心的。想寫客戶端之類的用C語言是最佳的..不過內存處理機制全部自己編寫..難度不是一般的高。

⑺ 怎麼用java編寫簡單客戶端程序

我這里有一個例子希望能夠幫助你

public class Client{
private Socket socket;
try{
Socket socket=new Socket ("localhoast',8088);
ip=InetAddress.getLocalHost();
String localip=ip.getHostAddress();
System.out.println(localip);
String name=ip.getHostName();
System.out.println(name);
}
catch(Exception e){

}
public void start(){
try{
Run r2=new Run();
Thread t1=new Thread(r2);
t1.setDaemon(true);
t1.start();

Scanner sc=new Scanner(System.in);
OutputStream os=socket.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
PrintWriter writer=new PrintWriter(osw,true);

while(true){
writer.println(sc.nextLine());
}
}catch(Exception e){

}

}
public static void main(String args[]){
Client client=new Client();
client.start();
}
class Run implements Runnable{
public void run() {
while(true){
try {
InputStream is=socket.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
while(true){
String str=br.readLine();
System.out.println("伺服器說:"+str);
if("bye".equals(str)){
System.out.println("再見客戶端");
System.out.println("聊天結束");

}
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}
}
}

⑻ Java中客戶端與伺服器之間怎樣連接

public class SocketClient extends Thread {
private Socket socket;
private int port = 10020;
private String hostIp = "127.0.0.9";
public SocketClient(byte[] b){
try {
BufferedReader in = null;
PrintWriter out = null;

socket = new Socket(hostIp, port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
System.out.println(Arrays.toString(b));
out.println(Arrays.toString(b)); //發送到服務端
System.out.println("Back回客戶的數據 message from server:[" + in.readLine() + "]");
out.close();
in.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
} //這是客戶連服務端,,
}

//這是服務端
public class SocketServer {
private ServerSocket serverSocket;
private Socket socket;
private int port = 10020;
private ExecutorService executeService = Executors.newFixedThreadPool(10); //線程池
public SocketServer(){
try {
serverSocket = new ServerSocket(port);
System.out.println("SocketServer have been started.[" + serverSocket + "]");
while(true){
socket = serverSocket.accept();

executeService.submit(new Runnable(){
public void run(){
try{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

String s1 = in.readLine();
System.out.println("Server Received:[" + s1 + "]"); //輸出
out.println("Server Received:[" + s1 + "]"); //放回到客戶端的
out.close();
in.close();
}catch (Exception e) {
}finally{
try {
System.out.println("關閉連接");
socket.close();
} catch (IOException e) {
System.out.println("close socket error.");
e.printStackTrace();
}
}
}
});
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(null != serverSocket){
serverSocket.close();
System.out.println("連接池關閉 ");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

}

⑼ 編寫java程序實現客戶端和服務端的通信

伺服器端:
public class Server{
public static void main(String[] args){
ServerSocket ss = new ServerSocket(埠號);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println(str);
br.close();
s.close();
ss.close();
}
}

客戶端:
public class Client{
public static void main(String[] args){
Socket s = new Socket(ip,埠)
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("hello");
bw.flush();
bw.close();
s.close();
}
}

先啟動伺服器端在啟動客戶端,兩個埠要一致,如果是同一台電腦的ip可寫為"127.0.0.1"

熱點內容
礦池排行6 發布:2025-07-21 03:00:28 瀏覽:455
加密貓區塊鏈游戲開盤價多少 發布:2025-07-21 02:44:24 瀏覽:171
凱撒網數字貨幣下載app 發布:2025-07-21 02:41:19 瀏覽:915
幣圈獎勵池 發布:2025-07-21 02:36:41 瀏覽:441
比特幣合約虧了 發布:2025-07-21 02:35:56 瀏覽:351
btc提幣地址 發布:2025-07-21 02:16:38 瀏覽:188
區塊鏈租房合同 發布:2025-07-21 01:59:28 瀏覽:301
區塊鏈的可能應用包括 發布:2025-07-21 01:56:26 瀏覽:174
怎麼評價元宇宙 發布:2025-07-21 01:56:26 瀏覽:971
doge手感 發布:2025-07-21 01:47:49 瀏覽:845