- 浏览: 390677 次
- 性别:
- 来自: 北京
文章分类
最新评论
java中的网络信息传输方式是基于TCP协议或者UD协议P的,socket是基于TCP协议的
这些例子都是Java2实用教程上的.
例子1 (1)客户端程序: import java.io.*; import java.net.*; public class Client { public static void main(String args[]) { String s=null; Socket mysocket; DataInputStream in=null; DataOutputStream out=null; try{ mysocket=new Socket("localhost",4331); in=new DataInputStream(mysocket.getInputStream()); out=new DataOutputStream(mysocket.getOutputStream()); out.writeUTF("你好!");//通过 out向"线路"写入信息。 while(true) { s=in.readUTF();//通过使用in读取服务器放入"线路"里的信息。堵塞状态, //除非读取到信息。 out.writeUTF(":"+Math.random()); System.out.println("客户收到:"+s); Thread.sleep(500); } } catch(IOException e) { System.out.println("无法连接"); } catch(InterruptedException e){} } } (2)服务器端程序: import java.io.*;import java.net.*; public class Server { public static void main(String args[]) { ServerSocket server=null; Socket you=null;String s=null; DataOutputStream out=null;DataInputStream in=null; try{ server=new ServerSocket(4331);} catch(IOException e1){System.out.println("ERRO:"+e1);} try{ you=server.accept(); in=new DataInputStream(you.getInputStream()); out=new DataOutputStream(you.getOutputStream()); while(true) { s=in.readUTF();// 通过使用in读取客户放入"线路"里的信息。堵塞状态, //除非读取到信息。 out.writeUTF("你好:我是服务器");//通过 out向"线路"写入信息. out.writeUTF("你说的数是:"+s); System.out.println("服务器收到:"+s); Thread.sleep(500); } } catch(IOException e) { System.out.println(""+e); } catch(InterruptedException e){} } } 例子(2) (1) 客户端 import java.net.*;import java.io.*; import java.awt.*;import java.awt.event.*; import java.applet.*; public class Computer_client extends Applet implements Runnable,ActionListener { Button 计算;TextField 输入三边长度文本框,计算结果文本框; Socket socket=null; DataInputStream in=null; DataOutputStream out=null; Thread thread; public void init() { setLayout(new GridLayout(2,2)); Panel p1=new Panel(),p2=new Panel(); 计算=new Button(" 计算"); 输入三边长度文本框=new TextField(12);计算结果文本框=new TextField(12); p1.add(new Label("输入三角形三边的长度,用逗号或空格分隔:")); p1.add( 输入三边长度文本框); p2.add(new Label("计算结果:"));p2.add(计算结果文本框);p2.add(计算); 计算.addActionListener(this); add(p1);add(p2); } public void start() { try { //和小程序所驻留的服务器建立套接字连接: socket = new Socket(this.getCodeBase().getHost(), 4331); in =new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); } catch (IOException e){} if(thread == null) { thread = new Thread(this); thread.start(); } } public void run() { String s=null; while(true) { try{ s=in.readUTF();//堵塞状态,除非读取到信息。 计算结果文本框.setText(s); } catch(IOException e) { 计算结果文本框.setText("与服务器已断开"); break; } } } public void actionPerformed(ActionEvent e) { if(e.getSource()==计算) { String s=输入三边长度文本框.getText(); if(s!=null) { try { out.writeUTF(s); } catch(IOException e1){} } } } } (2) 服务器端 import java.io.*;import java.net.*; import java.util.*;import java.sql.*; public class Computer_server { public static void main(String args[]) { ServerSocket server=null;Server_thread thread; Socket you=null; while(true) { try{ server=new ServerSocket(4331); } catch(IOException e1) { System.out.println("正在监听"); //ServerSocket对象不能重复创建。 } try{ you=server.accept(); System.out.println("客户的地址:"+you.getInetAddress()); } catch (IOException e) { System.out.println("正在等待客户"); } if(you!=null) { new Server_thread(you).start(); //为每个客户启动一个专门的线程。 } else { continue; } } } } class Server_thread extends Thread { Socket socket;Connection Con=null;Statement Stmt=null; DataOutputStream out=null;DataInputStream in=null;int n=0; String s=null; Server_thread(Socket t) { socket=t; try { in=new DataInputStream(socket.getInputStream()); out=new DataOutputStream(socket.getOutputStream()); } catch (IOException e) {} } public void run() { while(true) { double a[]=new double[3] ;int i=0; try{ s=in.readUTF();堵塞状态,除非读取到信息。 StringTokenizer fenxi=new StringTokenizer(s," ,"); while(fenxi.hasMoreTokens()) { String temp=fenxi.nextToken(); try{ a[i]=Double.valueOf(temp).doubleValue();i++; } catch(NumberFormatException e) { out.writeUTF("请输入数字字符"); } } double p=(a[0]+a[1]+a[2])/2.0; out.writeUTF(" "+Math.sqrt(p*(p-a[0])*(p-a[1])*(p-a[2]))); sleep(2); } catch(InterruptedException e){} catch (IOException e) { System.out.println("客户离开"); break; } } } }
这些例子都是Java2实用教程上的.
发表评论
-
Java 7七大新功能预览
2011-03-22 23:09 959Java 7已经完成的7大新功能: 1 对集合类的 ... -
Jprofiler 5.1.2 配置。
2011-01-12 18:18 2774作者:lizongbo 发表于:18:34. 星期一, 三月 ... -
Java关键字之native,strict fp,transient,volatile
2010-11-30 22:08 2163abstract default if ... -
[转]ArrayList Vector LinkedList 区别与用法
2010-09-01 21:37 909最近用到了,所以依然 ... -
流 JAVA IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
2010-08-12 15:13 1590java的IO是基于流(stream ... -
简述FileInputStream和FileReader的区别
2010-08-12 15:11 1772核心提示:1 ) File 类 ... -
java的转义字符
2010-08-02 13:58 1122点的转义:. ==> u002E 美元符号的转义: ... -
[转]java源代码:POI 操作Excel,创建下拉框
2010-07-28 13:28 1377package poiexcel; import ... -
JAVA Socket传输数据和对象
2010-01-23 11:14 106021 引子 在Socket通 ... -
DatabaseMetaData和ResultSetMetaData用法实例
2010-01-21 21:15 1844有关DatabaseMetaData的用法 一 、得到这个 ... -
用Java进行网速测试
2010-01-18 10:46 5698命令格式: ping ip地址 ... -
在JAR包中读取图片
2010-01-16 13:19 1562当你编写一个图形界面的程序的时候,你肯定要使用各种图片资源。那 ... -
美国Java程序员薪水调查(为什么外包)
2009-11-15 23:18 6050为什么美国软件会外包 ... -
Java 读取文件
2009-11-12 14:46 1367import java.io.BufferedReader ... -
java获取几天前和几天后的日期
2009-08-04 16:06 4520/** * 得到几天前的时间 * @par ... -
instanceof 的 测试 例子 ( 帮助理解 instance 用法 和 继承 的关键点 )
2009-08-04 09:31 1474//AA是基类 class AA { public void ... -
java反射机制简单例子
2009-08-04 09:29 1186package com.yemaozi.reflect; im ... -
Java如何进阶
2009-07-25 11:56 955Java目前是最流行的语言之一, 是很多公司和程序员喜爱的一门 ... -
java Socket 通讯的代码例子
2009-07-12 12:19 1144实现Client端功能的ClientApp.Java原文件: ...
相关推荐
1. Qt Modbus库提供了易于使用的API,使开发者可以快速而方便地实现...qt socket/modbus 简单又好用的交互库 以及与RTU、PLC 多地址交互示例以及信息统计 附加软件最小化到托盘,增加客户数据传输的实时性以及准确性
主要介绍了php实现与python进行socket通信的方法,结合实例形式分析了php使用自定义类发送socket请求数据及Python接收socket数据并处理请求等相关操作技巧,需要的朋友可以参考下
用SocketAsyncEventArgs通讯封装、服务端实现日志查看、SCOKET列表、上传、下载、远程文件流、吞吐量协议,测试SocketAsyncEventArgs的性能和压力,最大连接数支持65535个长连接,最高命令交互速度达到250MB/S(使用...
在Qt的服务端上,不单单会用到服务端本身的API,对连接上来的客户端,也需要进行数据交互,也要用到一些收发包相关的API操作; 1、相关的库和类 Qt下使用tcp协议,需要在工程的pro文件中添加: QT += network ...
本文实例讲述了Python 网络编程之TCP客户端/服务端功能。分享给大家供大家参考,具体如下: demo.py(TCP客户端): import socket def main(): # 1. 创建tcp的套接字 tcp_socket = socket.socket(socket.AF_INET...
Python由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1990年代初设计...从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口
下面是一个更详细的代码示例,展示了如何使用Python和PyLoRa库在两个LoRa设备之间进行简单的双向通信: 代码中,发送端将一个浮点数值(3.14)打包为二进制数据,并通过LoRa通信socket发送。接收端从LoRa通信socket...
主要介绍了Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
socket安全策略,服务器与AS3客户端源码 服务器是C# ,用于演示客户端向服务器请求安全文件,服务器发送安全文件的示例
这篇文章主要介绍了Python3的socket使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要实现两台机器的信息交互,使用 socket 进行调度。其中...
三菱Q系列PLC套接字功能程序示例,可实现多...Socket是一个通讯协议,简单说就是带有网口的2个设备,而且这两个设备都支持socket的情况下,可以实现数据的交互。三菱的5U和Q系列的,只要带网口的,就可以实现socket通讯
它结合大量示例,对WindowsSockets规范进行了深刻地解读,系统讲解了WindowsSockets网络编程及其相关的概念、原理、主要命令、操作模式,以及开发技巧和可能的陷阱,从程序员的角度给出了大量的建议和最佳实践,是...
它结合大量示例,对WindowsSockets规范进行了深刻地解读,系统讲解了WindowsSockets网络编程及其相关的概念、原理、主要命令、操作模式,以及开发技巧和可能的陷阱,从程序员的角度给出了大量的建议和最佳实践,是...
代码示例创建套接字 socket = Ionian :: Socket . new host : '127.0.0.1' , port : 23发送和接收数据 socket = Ionian :: Socket . new host : 'google.com' , port : 80socket . write "GET / HTTP
socket只能处理一个client连接,如果需要并发处理多个链接则需要使用socketserver,下面是代码示例以及注释 server端 import socketserver #之前的socket只能同时处理一个客户端,当需要并发处理client发送的信息是...
在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互。 因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送。 使用SOCK_...
连接远程主机,并与远程主机交互 简单示例,高手跳过
OursNET.HTML5.Socket 有服务端的实现的关键代码都封装在这里 OursNET.HTML5.WebSvr 以WINFORM的方式启动服务,只有一句代码,有兴趣可以去完善一下,比如可以扩展显示所有信息的交互,可以群发等等 Oursnet.net :...
网络编程Socket介绍 Socket通信案例消息发送与接收 第8周 上节回顾 Socket实现简单的ssh客户端 Socket实现简单的ssh服务端 积极思考正能量 Socket实现简单的ssh2 Socket粘包 Socket粘包深入编码 SocketServer ...
client 和 server 之间建立 websocket 连接时握手部分,这个部分在 node 中可以十分轻松的完成,因为 node 提供的 net 模块已经对 socket 套接字做了封装处理,开发者使用的时候只需要考虑数据的交互而不用处理连接...