以太坊的java客户端使用
① 用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程序实现客户端和服务端的通信
服务器端:
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"
③ 用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代码编写的一个客户端界面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创建客户端Socket的过程。
如果你要实现服务器和客户端都可以向对方发送消息,而不等待对方应答,只需要把InputStream和OutputStream分别放在两个不同线程里就行了,即是说把接收流与发送流分别用一个线程监听处理。如果要实现不分客户端服务器的话,用UDP通信即可 补充回答:如果不涉及到MIME,只是收发简单文本邮件。就会比较简单。因为就像你说的,smtp和pop3协议就是文本格式的。你用Socket建立连接后,就像读文件一样,一行一行的读数据,然后按照协议分析数据格式。例如如果开始时USER那么后面可能跟的就是用户等。 就是一个字符串解析和匹配的过程。网上好像有这类代码,自己找一个学习一下。我以前用C在68k上作过,不是很难。不过代码已经没有了。
⑥ 怎么用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编写客户端用什么好
用QT做界面开发,不过我还是不建议用Java写客户端,实在是太坑了。
⑧ Java用来编写客户端还是服务器端
两者都可以...不过java的垃圾回收机制因为是自动的所以执行客户端程序的时候效率特别慢...一般用于服务器端或WEB开发...学java的重点就是以j2ee技术为核心的。想写客户端之类的用C语言是最佳的..不过内存处理机制全部自己编写..难度不是一般的高。
⑨ java 网络编程: 如何实现客户端与客户端之间的之间通信
(1)服务器首先启动监听程序,对指定的端口进行监听,等待接收客户端的连接请求。
(2)客户端程序启动,请求连接服务器的指定端口。
(3)服务器收到客户端的连接请求后与客户端建立套接字连接。
(4)连接成功后,客户端与服务器分别打开两个流,其中客户端的输入流连接到服务器的输出流,服务器的输入流
连接到客户端的输出流,两边的流建立连接后就可以双向的通信了。
(5)当通信完毕后客户端与服务器端两边各自断开连接。