- 浏览: 1592196 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
自定义简单 IE 1.采用 简单的GUI
自定义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.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(); } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 1007public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2285经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5662package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 1006import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1057/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1014//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1828更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1420import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 819import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2401import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 927// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1176import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 806import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1149import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3897import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 969/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1027import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1843Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1011/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2234package out; import ja ...
相关推荐
java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java ...
本压缩包“Modbus-TCP-java.rar”包含了用于Java环境下的Modbus TCP库——modbus4J的相关资源。 modbus4J是一个开源的Java库,它提供了对Modbus协议的全面支持,包括Modbus RTU、ASCII以及我们关注的TCP模式。这个...
Java ModbusTCP通信是工业自动化领域中常见的通信协议,它基于TCP/IP网络协议,用于设备间的通信。在Java中实现ModbusTCP通信,主要是通过创建Socket连接,与Modbus服务器进行数据交换。以下是对这个主题的详细解释...
在Java编程中,TCP(传输控制协议)常用于构建稳定、可靠的数据通信。TCP长连接是一种保持客户端与服务器端长时间连接的技术,以便于进行高效的数据交互。心跳机制是维持长连接的关键,它用来检测网络连接是否中断,...
基于 Java 的 Modbus TCP 通信 Modbus TCP 是一种基于以太网的工业现场总线协议标准,由 MODICON 公司于 1979 年开发。1996 年,施耐德公司推出了基于以太网 TCP/IP 的 Modbus 协议:Modbus TCP。Modbus 协议是一项...
在这个场景中,我们有`TCP client.java`和`TCP server.java`两个文件,分别代表了TCP客户端和服务器端的Java实现。接下来,我们将深入探讨这两个关键组件的工作原理以及如何在Java中进行TCP Socket编程。 首先,TCP...
主要为大家介绍了Java基于TCP方式的二进制文件传输,一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成,感兴趣的小伙伴们可以参考一下
java springboot tcp通讯 demo ;
在Java编程中,心跳包(Heartbeat Packet)是一种在网络通信中维持连接活性的重要机制,尤其在TCP协议下,心跳包可以解决长连接因网络延迟或静默而导致的连接超时问题。TCP是一种面向连接的、可靠的传输层协议,它...
在IT领域,网络通信是核心部分之一,而IP/TCP协议是互联网协议栈中的关键层次。本文将深入探讨如何利用Java编程语言实现对IP和TCP协议数据包的拦截与分析,以便获取IP地址的详细信息。 首先,我们需要理解IP...
Java 实现TCP传输是网络编程中的一个重要环节,TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在Java中,我们可以通过Socket类和ServerSocket类来实现TCP通信。 ...
【Java版聊天软件基于TCP协议实现】 在计算机网络通信领域,TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过三次握手建立连接,确保数据传输的可靠性,...
在Java中实现TCP聊天程序,需要掌握以下关键知识点: 1. **Socket编程**:Java中的Socket类是实现TCP通信的基础。Socket提供了客户端和服务端之间的连接,通过ServerSocket创建服务端监听端口,Socket用于建立...
本项目"JAVA写的利用ModbusTCP协议控制现场设备"就是一个典型的实例,它利用了Modbus协议的TCP/IP变体来实现对设备的远程控制。Modbus是一种广泛应用的通信协议,允许设备间进行简单数据交换,尤其适合于PLC(可编程...
在这个Java项目中,我们专注于使用TCP进行网络通信,提供了完整的UI界面,便于学习和实践。 TCP协议的特点包括: 1. 面向连接:在数据传输前,TCP需要建立一个连接,即三次握手过程,确保双方都能正常通信。 2. ...
TCP校验和是确保数据完整性的手段之一。它对整个TCP头和数据部分进行计算,以检测传输过程中的任何错误。在Java中,TCP校验和的计算是由TCP协议栈自动完成的,程序员通常无需直接处理。然而,了解其工作原理有助于...
在Java编程中,TCP(传输控制协议)服务器的构建通常涉及到多线程技术,以便能够同时处理多个客户端的连接请求。下面将详细讲解如何利用Java创建一个TCP服务器,使用线程来监听端口并处理连接。 一、TCP服务器基础 ...
二、Java NIO与TCP服务器 Java NIO(New Input/Output)库提供了非阻塞I/O操作,使得TCP服务器可以处理多个并发连接。本框架可能采用了Java NIO来提高服务器的并发性能。NIO中的ServerSocketChannel用于监听客户端...
本资料“TCP_Java.rar”着重介绍了如何在Java编程环境下实现TCP协议。下面将详细阐述相关知识点。 1. **TCP协议基础** TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,并使用...