`
Luob.
  • 浏览: 1592305 次
  • 来自: 上海
社区版块
存档分类
最新评论

java之 24天 TCP,URL (二)

    博客分类:
  • Java
阅读更多
自定义简单 IE 1.采用 简单的GUI

import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class MyIEByGUI {

	private Frame f;
	private TextField tf;
	private Button btn;
	private TextArea ta;
	private Dialog d;
	private Label lab;
	private Button okbtn;
	
	MyIEByGUI(){
		init();
	}
	
	private void init(){
		f=new Frame("my Window");
		f.setBounds(300,100,600,500);
		f.setLayout(new FlowLayout());
		
		tf=new TextField(60);
		
		btn=new Button("转到");
		ta=new TextArea(25,70);
		
		d=new Dialog(f,"提示信息-self",true);
		d.setBounds(400,200,250,150);
		d.setLayout(new FlowLayout());
		
		lab=new Label();
		okbtn=new Button("确定");
		
		d.add(lab);
		d.add(okbtn);
		
		
		f.add(tf);
		f.add(btn);
		f.add(ta);
		
		myEvent();
		f.setVisible(true);
		
	}
	
	
	private void myEvent() {
		
		//添加 回车 时候 自动转到
		tf.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				if(e.getKeyCode()==KeyEvent.VK_ENTER){
					showDir();
				}
			}
		});
		//确定按钮事件
		okbtn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				d.setVisible(false);
			}
		});
		
		d.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				d.setVisible(false);
			}
		
		});
		
		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				showDir();
			}
			
		});
		
		
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
			
		});
		
	}
	private void showDir() {
		try{
			String url=tf.getText();  //http://192.168.1.121:10000/myweb/demo.html
			
			int index=url.indexOf("//")+2;
			int index2=url.indexOf("/",index);
			
			String str=url.substring(index,index2);//192.168.1.121:10000
			String[] arr=str.split(":"); //192.168.1.121      10000
			String host=arr[0];
			int prot=Integer.parseInt(arr[1]);
			
			String path=url.substring(index2);  //myweb/demo.html
			
			Socket s=new Socket(host,prot);
			PrintWriter out=new PrintWriter(s.getOutputStream(),true);
			
			out.println("GET "+path+" HTTP/1.1");
			out.println("Accept: */*");
			out.println("Accept-Language: zh-CN");
			out.println("Host: "+str);
			//out.println("Connection: Keep-Alive");  请求完后 还保持连接,直到  请求超时
			out.println("Connection: closed");     //请求完后,连接就关闭
			out.println();  //结束头部请求
			
			BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream()));
			
			String line=null;
			while((line=bufr.readLine())!=null){
				ta.append(line+"\r\n");
			}
			s.close();
			
			
			tf.setText("");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		new MyIEByGUI();
	}

}


自定义IE2,采用简单的GUI
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.URL;
import java.net.URLConnection;

public class MyIEByGUI1 {

	private Frame f;
	private TextField tf;
	private Button btn;
	private TextArea ta;
	private Dialog d;
	private Label lab;
	private Button okbtn;
	
	MyIEByGUI1(){
		init();
	}
	
	private void init(){
		f=new Frame("my Window");
		f.setBounds(300,100,600,500);
		f.setLayout(new FlowLayout());
		
		tf=new TextField(60);
		
		btn=new Button("转到");
		ta=new TextArea(25,70);
		
		d=new Dialog(f,"提示信息-self",true);
		d.setBounds(400,200,250,150);
		d.setLayout(new FlowLayout());
		
		lab=new Label();
		okbtn=new Button("确定");
		
		d.add(lab);
		d.add(okbtn);
		
		
		f.add(tf);
		f.add(btn);
		f.add(ta);
		
		myEvent();
		f.setVisible(true);
		
	}
	
	
	private void myEvent() {
		
		//添加 回车 时候 自动转到
		tf.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				if(e.getKeyCode()==KeyEvent.VK_ENTER){
					showDir();
				}
			}
		});
		//确定按钮事件
		okbtn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				d.setVisible(false);
			}
		});
		
		d.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				d.setVisible(false);
			}
		
		});
		
		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				showDir();
			}
			
		});
		
		
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
			
		});
		
	}
	private void showDir() {
		try{
			String urlTest=tf.getText();  //http://192.168.1.121:10000/myweb/demo.html
			URL url=new URL(urlTest);
			URLConnection conn= url.openConnection();  // 在内部帮我们进行 socket 连接
			
			InputStream in=conn.getInputStream();
			byte[] buf=new byte[1024];
			int len=in.read(buf);
			
			ta.append(new String(buf,0,len));
			
			
			tf.setText("");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		new MyIEByGUI1();
	}

}



  • 大小: 44.6 KB
0
1
分享到:
评论

相关推荐

    java Tcp 客户端工具类 java Tcp 客户端工具类

    java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java ...

    Modbus-TCP-java.rar_MODBUS Tcp java_java Tcp _java modbus_java

    本压缩包“Modbus-TCP-java.rar”包含了用于Java环境下的Modbus TCP库——modbus4J的相关资源。 modbus4J是一个开源的Java库,它提供了对Modbus协议的全面支持,包括Modbus RTU、ASCII以及我们关注的TCP模式。这个...

    java ModbusTCP通讯

    Java ModbusTCP通信是工业自动化领域中常见的通信协议,它基于TCP/IP网络协议,用于设备间的通信。在Java中实现ModbusTCP通信,主要是通过创建Socket连接,与Modbus服务器进行数据交换。以下是对这个主题的详细解释...

    java建立TCP长链接

    在Java编程中,TCP(传输控制协议)常用于构建稳定、可靠的数据通信。TCP长连接是一种保持客户端与服务器端长时间连接的技术,以便于进行高效的数据交互。心跳机制是维持长连接的关键,它用来检测网络连接是否中断,...

    基于java的modbus TCP通信

    基于 Java 的 Modbus TCP 通信 Modbus TCP 是一种基于以太网的工业现场总线协议标准,由 MODICON 公司于 1979 年开发。1996 年,施耐德公司推出了基于以太网 TCP/IP 的 Modbus 协议:Modbus TCP。Modbus 协议是一项...

    socket编程 TCP client.java TCPserver.java

    在这个场景中,我们有`TCP client.java`和`TCP server.java`两个文件,分别代表了TCP客户端和服务器端的Java实现。接下来,我们将深入探讨这两个关键组件的工作原理以及如何在Java中进行TCP Socket编程。 首先,TCP...

    Java基于TCP方式的二进制文件传输

    主要为大家介绍了Java基于TCP方式的二进制文件传输,一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成,感兴趣的小伙伴们可以参考一下

    java springboot tcp通讯 demo

    java springboot tcp通讯 demo ;

    Java心跳包功能TCP实现

    在Java编程中,心跳包(Heartbeat Packet)是一种在网络通信中维持连接活性的重要机制,尤其在TCP协议下,心跳包可以解决长连接因网络延迟或静默而导致的连接超时问题。TCP是一种面向连接的、可靠的传输层协议,它...

    用Java实现对IP/TCP协议数据包的拦截和分析

    在IT领域,网络通信是核心部分之一,而IP/TCP协议是互联网协议栈中的关键层次。本文将深入探讨如何利用Java编程语言实现对IP和TCP协议数据包的拦截与分析,以便获取IP地址的详细信息。 首先,我们需要理解IP...

    java实现TCP传输

    Java 实现TCP传输是网络编程中的一个重要环节,TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在Java中,我们可以通过Socket类和ServerSocket类来实现TCP通信。 ...

    java版聊天软件 TCP协议 附带源码

    【Java版聊天软件基于TCP协议实现】 在计算机网络通信领域,TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过三次握手建立连接,确保数据传输的可靠性,...

    TCP.rar_TCP java_java Tcp _java tcp聊天_tcp_tcp java

    在Java中实现TCP聊天程序,需要掌握以下关键知识点: 1. **Socket编程**:Java中的Socket类是实现TCP通信的基础。Socket提供了客户端和服务端之间的连接,通过ServerSocket创建服务端监听端口,Socket用于建立...

    JAVA写的利用ModbusTCP协议控制现场设备

    本项目"JAVA写的利用ModbusTCP协议控制现场设备"就是一个典型的实例,它利用了Modbus协议的TCP/IP变体来实现对设备的远程控制。Modbus是一种广泛应用的通信协议,允许设备间进行简单数据交换,尤其适合于PLC(可编程...

    java网络通信TCP

    在这个Java项目中,我们专注于使用TCP进行网络通信,提供了完整的UI界面,便于学习和实践。 TCP协议的特点包括: 1. 面向连接:在数据传输前,TCP需要建立一个连接,即三次握手过程,确保双方都能正常通信。 2. ...

    java Tcp协议验证

    TCP校验和是确保数据完整性的手段之一。它对整个TCP头和数据部分进行计算,以检测传输过程中的任何错误。在Java中,TCP校验和的计算是由TCP协议栈自动完成的,程序员通常无需直接处理。然而,了解其工作原理有助于...

    java tcp server 创建线程监听端口,创建线程处理连接

    在Java编程中,TCP(传输控制协议)服务器的构建通常涉及到多线程技术,以便能够同时处理多个客户端的连接请求。下面将详细讲解如何利用Java创建一个TCP服务器,使用线程来监听端口并处理连接。 一、TCP服务器基础 ...

    一个java tcp服务器的基础框架

    二、Java NIO与TCP服务器 Java NIO(New Input/Output)库提供了非阻塞I/O操作,使得TCP服务器可以处理多个并发连接。本框架可能采用了Java NIO来提高服务器的并发性能。NIO中的ServerSocketChannel用于监听客户端...

    TCP_Java.rar_TCP java_java Tcp _实现tcp协议

    本资料“TCP_Java.rar”着重介绍了如何在Java编程环境下实现TCP协议。下面将详细阐述相关知识点。 1. **TCP协议基础** TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,并使用...

Global site tag (gtag.js) - Google Analytics