- 浏览: 396013 次
- 性别:
- 来自: 北京
文章分类
最新评论
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 992Java 7已经完成的7大新功能: 1 对集合类的 ... -
Jprofiler 5.1.2 配置。
2011-01-12 18:18 2815作者:lizongbo 发表于:18:34. 星期一, 三月 ... -
Java关键字之native,strict fp,transient,volatile
2010-11-30 22:08 2201abstract default if ... -
[转]ArrayList Vector LinkedList 区别与用法
2010-09-01 21:37 937最近用到了,所以依然 ... -
流 JAVA IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
2010-08-12 15:13 1628java的IO是基于流(stream ... -
简述FileInputStream和FileReader的区别
2010-08-12 15:11 1798核心提示:1 ) File 类 ... -
java的转义字符
2010-08-02 13:58 1161点的转义:. ==> u002E 美元符号的转义: ... -
[转]java源代码:POI 操作Excel,创建下拉框
2010-07-28 13:28 1400package poiexcel; import ... -
JAVA Socket传输数据和对象
2010-01-23 11:14 106371 引子 在Socket通 ... -
DatabaseMetaData和ResultSetMetaData用法实例
2010-01-21 21:15 1884有关DatabaseMetaData的用法 一 、得到这个 ... -
用Java进行网速测试
2010-01-18 10:46 5780命令格式: ping ip地址 ... -
在JAR包中读取图片
2010-01-16 13:19 1589当你编写一个图形界面的程序的时候,你肯定要使用各种图片资源。那 ... -
美国Java程序员薪水调查(为什么外包)
2009-11-15 23:18 6081为什么美国软件会外包 ... -
Java 读取文件
2009-11-12 14:46 1393import java.io.BufferedReader ... -
java获取几天前和几天后的日期
2009-08-04 16:06 4561/** * 得到几天前的时间 * @par ... -
instanceof 的 测试 例子 ( 帮助理解 instance 用法 和 继承 的关键点 )
2009-08-04 09:31 1507//AA是基类 class AA { public void ... -
java反射机制简单例子
2009-08-04 09:29 1208package com.yemaozi.reflect; im ... -
Java如何进阶
2009-07-25 11:56 988Java目前是最流行的语言之一, 是很多公司和程序员喜爱的一门 ... -
java Socket 通讯的代码例子
2009-07-12 12:19 1180实现Client端功能的ClientApp.Java原文件: ...
相关推荐
在这个简单示例中,我们将探讨如何使用Socket和多线程来实现客户端和服务端的交互。 首先,让我们理解Socket的基本概念。Socket是操作系统提供的一种接口,它允许应用程序通过网络发送和接收数据。在TCP/IP协议栈中...
"SOCKET简单示例"这个主题,主要是针对VC++编程环境,利用阻塞模式的Socket进行网络通信的一个基础教程,适合初学者入门学习。 首先,我们需要了解什么是Socket。Socket,又称为套接字,是操作系统提供的一种进程间...
Socket编程在计算机网络...这个简单示例为我们展示了如何在客户端和服务器端使用Socket进行基本的交互,是学习网络编程的一个基础起点。在实际项目中,你可能还需要考虑更复杂的情况,如错误处理、并发控制、安全性等。
在本场景中,我们有一个Java编写的服务器端(SocketServer.java)和Android客户端进行简单的Socket交互。 首先,让我们深入了解Java中的Socket。Socket是在TCP/IP协议簇上实现进程间通信的一种方式,它提供了两台...
总结起来,这个示例项目旨在提供关于如何使用socket进行本地和网络通信的实践教程,涵盖了Unix域socket和网络socket的基本操作。通过学习和实践这些代码,开发者能够更好地理解和掌握socket编程技术,这对于开发网络...
1. Qt Modbus库提供了易于使用的API,使开发者可以快速而方便地实现...qt socket/modbus 简单又好用的交互库 以及与RTU、PLC 多地址交互示例以及信息统计 附加软件最小化到托盘,增加客户数据传输的实时性以及准确性
总的来说,"FLASH AS3 SOCKET收发16进制示例"涵盖了网络编程的基础,以及如何在Flash环境中处理16进制数据。了解这些概念和技巧对于开发需要实时通信的Flash应用程序至关重要。记住,安全性和性能优化也是使用Socket...
在IT行业中,Linux Socket是进行网络通信的重要工具,尤其对于系统和网络程序员来说,理解和掌握Linux Socket编程至关重要。本示例代码提供了客户端(client)和服务器端(server)的实现,帮助初学者深入理解如何在...
在这个"Socket聊天程序示例"中,我们探讨的是如何构建一个简单的网络聊天环境,其中每个终端都可以同时作为服务器和客户端进行交互。 首先,我们要了解Socket的基本概念。在TCP/IP协议栈中,Socket是应用层与传输层...
在本示例中,我们探讨的是如何使用Socket进行程序间的交互。Socket可以被看作是两台计算机之间的通信端点,允许它们通过网络交换数据。下面我们将深入讨论Socket编程的基本原理、步骤以及在实际应用中的使用。 一、...
Socket接口则为应用程序提供了与这些协议交互的手段。本文将深入探讨如何使用C++编程语言来实现基于TCP和UDP的简单Socket服务,包括echo(回显)、time(时间查询)等功能。 首先,TCP是一种面向连接的、可靠的协议...
总之,这个Java_socket通信示例提供了一个简单但实用的聊天室应用,展示了如何使用Java的Socket API进行网络通信。通过学习和研究这个示例,开发者可以更好地掌握网络编程的基础,为构建更复杂的网络应用打下坚实的...
本示例主要展示了如何在VFP环境中使用Socket进行客户端和服务器端的交互。 首先,Socket是一种在不同计算机间进行通信的技术,它基于TCP/IP协议栈,为应用层提供了进程间的通信接口。在VFP中,我们可以使用内置的`...
首先,Socket是一种接口,它允许程序员通过API(应用程序编程接口)与操作系统交互,从而在不同系统之间建立网络连接。Socket编程主要应用于服务器端和客户端之间的数据传输,比如Web服务器、邮件服务器等。 在C++...
【SuperSocket】是一个高度可定制、高性能的.NET Socket服务端开发框架,专为构建网络应用程序而设计。在本文中,我们将深入探讨SuperSocket的核心概念、功能特性,以及如何利用提供的客户端和服务器端示例源码进行...
以下是一个简单的Android Socket通信示例: **服务器端(Server)** ```java public class ServerActivity extends AppCompatActivity { private ServerSocket serverSocket; @Override protected void onCreate...
Socket通讯在IT行业中是网络编程的基础,主要用于实现进程间的通信,尤其在分布式系统、服务器端应用和客户端应用间的数据交互中扮演着重要角色。在这个"Socket通讯代码示例"项目中,我们主要会探讨以下几个核心知识...
以下是一个简单的示例代码,展示如何使用心跳机制检测网络断开: ```java public class SocketClient { private Socket socket; private ScheduledExecutorService executorService; public void connect...
接下来,我们来看一下在Delphi 2010中创建一个简单的Socket通信客户端和服务器的基本步骤: 1. **初始化Winsock**:调用`WSAStartup`函数,传递WSADESCRIPTION结构体的版本信息,以初始化Winsock环境。 2. **创建...
本示例程序是为C++ Builder开发者提供的一种学习资源,旨在帮助他们理解和掌握Socket编程的基本概念和技巧。 Socket,也称为套接字,是网络通信的一种接口,允许应用程序通过网络发送和接收数据。在C++ Builder中,...