`
aa8945163
  • 浏览: 275181 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java socket服务器端与其他语言的通讯

 
阅读更多
首先说下背景:
    项目是一个物资计量系统,大致的1:java的做的数据的采集和处理,业务逻辑和报表,页面展现.2:其他的厂家提供的设备上数据的发送有厂家的设备自带


    现在跟各个厂家通讯 采用socket通讯.

    第一个版的读取:
BufferedReader in;  
ServerSocket ss = new ServerSocket(4002); 
Socket socket = ss.accept(); 
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
String line = in.read(); 
System.out.println(line);

这种读取,在java间通讯没有问题,但是与其他的语言通讯会出现问题,因为其他的通讯末尾是没有/n的,股出现一个不能结尾的管道等待的问题.

问题找到后,一个通用的版本出现啦:
public class Server {
		private int port;
		public Server(int port){
		    this.port=port;
		    start();
		}
		//将从客户端收到的信息转化为大写的
		public String process(String line){
		    return line.toUpperCase();
		}
		public void start(){
		    try{
		        //根据端口创建套接字
		        ServerSocket myscoket=new ServerSocket(port);
		        //显示连接信息
		        System.out.println("服务器启动完成,监听端口在"+port);
		        System.out.println("正在等待客户连接.........");
		        //挂起等待客户的请求
		        Socket connection=myscoket.accept();
		                //测试
		                System.out.println("客户发来连接请求.........");
		        //获取读取客户端的数据流
		       InputStream is = connection.getInputStream();
		        //获取写往客户端的数据输出流,true表示自动刷新
		        PrintWriter out=new PrintWriter(connection.getOutputStream(),true);
		        //向客户发送欢迎的信息
		        out.println("您好,服务器连接成功!");
		        out.println("输入bye断开与服务器的连接");
		        boolean done=false;
int i = 0;
		        while(!done){
		            //读取客户端的内容
		        	i++;
				System.out.println(i);
		        	byte[] b = new byte[8];   
					int length = is.read(b);   
					String str = new String(b,0,length); // 收到的字符串 
					System.out.println(String.valueOf(str));
		        }
		        //关闭通信
		        connection.close();
		    }catch(Exception e){
		        System.out.println(e);
		    }    
		}
		
		/**
	    * @param args
	    */
	    public static void main(String[] args) {
	        // TODO Auto-generated method stub
			try{
			    //获得端口号
			    Server myserver=new Server(4001);
			}catch(Exception e){
			    System.out.println(e);
			}
	    }
}


分享到:
评论

相关推荐

    基于socket java 语言网络通讯机制和程序设计

    ### 基于Socket Java 语言网络通讯机制和程序设计 #### 摘要与引言 本文旨在探讨Java语言在网络通讯中的应用及其基于Socket的编程机制。随着互联网技术的飞速发展,网络编程已经成为软件开发中不可或缺的一部分。...

    socket通讯 .net做为服务器端和java 做为客户端

    在提供的压缩包文件中,"ConsoleApplication1"可能是一个简单的C# Socket服务器示例,而"demo"可能是Java客户端的代码。"说明.txt"应该包含了更详细的实现细节和使用说明。为了更好地理解这个系统,你需要阅读这些...

    c++客户端和java(Netty)服务器端tcp通讯

    本话题将探讨如何使用C++客户端与Java(通过Netty框架)服务器端实现TCP通讯,并涉及数据序列化工具Protocol Buffers(protobuf)在两者之间的交互。 首先,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节...

    JAVA即时通讯+P2P+socket

    在Java中,Socket类和ServerSocket类是主要的工具,分别用于客户端和服务器端的通信。 1. **Socket**:客户端使用Socket类创建一个到远程服务器的连接。Socket对象代表了这个连接,并提供了输入输出流来读写数据。...

    计算机网络编程socket客户端与服务器通讯

    ### 计算机网络编程socket客户端与服务器通讯 #### 概述 计算机网络编程是现代互联网技术的基础之一,其中socket编程是一种重要的实现方式。本文将详细介绍一个基于Android客户端与服务器之间进行socket通信的设计...

    java服务器端(Netty_Proto)和c++客户端tcp通讯.rar

    描述中提到的“java服务器端(Netty_Proto)和c++客户端tcp通讯”进一步确认了这个项目是关于用Java的Netty服务器与C++客户端之间通过TCP进行数据交换。TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的...

    qt与java之间socket通讯

    本主题聚焦于“Qt与Java之间的Socket通讯”,其中消息格式采用类似JSON的结构,Qt作为服务端,Java作为客户端。下面我们将详细探讨这个过程中的关键知识点。 首先,Qt是一个C++库,提供了丰富的功能,包括GUI设计、...

    Java Socket传输图片源代码

    在Java编程语言中,Socket是实现网络通信的基础组件。它提供了进程间通信(IPC)的能力,特别是在不同机器之间。在本示例中,我们将深入探讨如何使用Java Socket进行图片的传输,这对于理解网络编程和数据交换至关...

    socket通讯java语言聊天室(仿qq风格)

    在这个"socket通讯java语言聊天室(仿qq风格)"项目中,我们将深入理解如何利用Java的Socket API创建一个类似QQ的聊天系统。 首先,Java Socket是基于TCP协议的,它提供了双向通信通道,允许两个程序通过网络进行...

    socket聊天软件 服务器端

    Socket聊天软件服务器端是基于Java编程语言开发的一款实用通信工具,它利用了Socket编程来实现客户端与服务器之间的实时交互。Socket在计算机网络中扮演着重要角色,它是TCP/IP协议族的一部分,提供了进程间的网络...

    C#和java 之间基于Socket的通信

    - C#客户端创建`Socket`实例并调用`Connect()`方法,而Java服务器端创建`ServerSocket`实例,监听客户端的连接请求。 6. **实现简单通信**: - 简单通信通常涉及发送字符串或二进制数据。发送方将数据写入输出流...

    AS与java socket通讯解决安全沙箱

    1. **设置安全策略文件**:在服务器端,你需要创建一个XML格式的安全策略文件(crossdomain.xml),声明允许哪些来源的AS客户端进行Socket连接。这个文件需要放在服务器的根目录下,以便Flash Player能够自动获取。 ...

    java_sx.rar_java socket _java 通讯_socket

    在Java中,Socket和ServerSocket类是进行网络通信的基础,它们分别代表客户端和服务器端的连接端点。 标题中的"java_sx.rar_java socket _java 通讯_socket"暗示了这个压缩包可能包含了一些关于使用Java Socket进行...

    Java基于socket的进程间通信 聊天小程序

    7. **聊天小程序设计**: 这个小程序可能包含两个主要部分:服务器端应用程序负责接收多个客户端的连接,处理来自客户端的消息,并广播这些消息给其他所有在线的客户端;客户端应用程序则用于连接服务器,发送用户...

    java版C/S简单socket通讯

    Java版的C/S简单Socket通讯是基于Java编程语言,利用Socket接口实现的客户端/服务器通信模型。在这个场景中,"SWT"(Standard Widget Toolkit)是用于构建图形用户界面(GUI)的库,它提供了丰富的控件和组件,使得...

    JAVA利用TCP进行服务器与客户端通讯

    - 通过`Socket`对象获取输入流和输出流,步骤与服务器端类似。 - 客户端可以使用这些流来发送数据到服务器,并接收服务器的响应。 - 完成通讯后,关闭`Socket`及其相关的输入/输出流。 在给定的文件列表中,...

    JAVA socket 通信

    Java Socket通信是Java编程语言中实现网络通信的基础组件,它提供了低级别的、面向连接的、双向的数据传输服务。在Java中,Socket类和ServerSocket类是进行网络通信的核心类。Socket用于客户端,它建立到服务器的...

    通过传输xml的java网络聊天室(socket通讯)

    3. **Java多线程**:为了处理多个并发的客户端连接,服务器端通常会使用多线程。每个Socket连接对应一个独立的线程,这样服务器可以同时处理多个用户的请求,提高系统效率。客户端可能也会使用多线程,例如,一个...

    java socket聊天程序,有界面

    4. **点对点通讯**:在点对点通讯模式中,每个参与者既是服务提供者也是服务消费者,可以直接与其他节点通信。Java Socket可以实现这种模式,每个用户都可以直接连接到其他用户,发送和接收消息,无需经过中央服务器...

    GPS定位器GT06协议socket通讯JAVA源代码.zip

    标题中的“GPS定位器GT06协议socket通讯JAVA源代码”揭示了本次讨论的主要内容,即使用Java编程语言实现GPS定位器(型号为GT06)的Socket通信协议。GPS定位器是用于获取地理位置信息的设备,而GT06协议是这种特定...

Global site tag (gtag.js) - Google Analytics