首先说下背景:
项目是一个物资计量系统,大致的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 语言网络通讯机制和程序设计 #### 摘要与引言 本文旨在探讨Java语言在网络通讯中的应用及其基于Socket的编程机制。随着互联网技术的飞速发展,网络编程已经成为软件开发中不可或缺的一部分。...
在提供的压缩包文件中,"ConsoleApplication1"可能是一个简单的C# Socket服务器示例,而"demo"可能是Java客户端的代码。"说明.txt"应该包含了更详细的实现细节和使用说明。为了更好地理解这个系统,你需要阅读这些...
本话题将探讨如何使用C++客户端与Java(通过Netty框架)服务器端实现TCP通讯,并涉及数据序列化工具Protocol Buffers(protobuf)在两者之间的交互。 首先,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节...
在Java中,Socket类和ServerSocket类是主要的工具,分别用于客户端和服务器端的通信。 1. **Socket**:客户端使用Socket类创建一个到远程服务器的连接。Socket对象代表了这个连接,并提供了输入输出流来读写数据。...
### 计算机网络编程socket客户端与服务器通讯 #### 概述 计算机网络编程是现代互联网技术的基础之一,其中socket编程是一种重要的实现方式。本文将详细介绍一个基于Android客户端与服务器之间进行socket通信的设计...
本主题聚焦于“Qt与Java之间的Socket通讯”,其中消息格式采用类似JSON的结构,Qt作为服务端,Java作为客户端。下面我们将详细探讨这个过程中的关键知识点。 首先,Qt是一个C++库,提供了丰富的功能,包括GUI设计、...
在Java编程语言中,Socket是实现网络通信的基础组件。它提供了进程间通信(IPC)的能力,特别是在不同机器之间。在本示例中,我们将深入探讨如何使用Java Socket进行图片的传输,这对于理解网络编程和数据交换至关...
在这个"socket通讯java语言聊天室(仿qq风格)"项目中,我们将深入理解如何利用Java的Socket API创建一个类似QQ的聊天系统。 首先,Java Socket是基于TCP协议的,它提供了双向通信通道,允许两个程序通过网络进行...
Socket聊天软件服务器端是基于Java编程语言开发的一款实用通信工具,它利用了Socket编程来实现客户端与服务器之间的实时交互。Socket在计算机网络中扮演着重要角色,它是TCP/IP协议族的一部分,提供了进程间的网络...
- C#客户端创建`Socket`实例并调用`Connect()`方法,而Java服务器端创建`ServerSocket`实例,监听客户端的连接请求。 6. **实现简单通信**: - 简单通信通常涉及发送字符串或二进制数据。发送方将数据写入输出流...
1. **设置安全策略文件**:在服务器端,你需要创建一个XML格式的安全策略文件(crossdomain.xml),声明允许哪些来源的AS客户端进行Socket连接。这个文件需要放在服务器的根目录下,以便Flash Player能够自动获取。 ...
一、C/C++服务器端(VS2010) 在Visual Studio 2010中,我们可以使用Winsock库来实现Socket编程。Winsock是Windows上的一个API,它提供了与Berkeley Sockets接口兼容的接口,使得开发者可以在Windows上进行网络通信...
在Java中,Socket和ServerSocket类是进行网络通信的基础,它们分别代表客户端和服务器端的连接端点。 标题中的"java_sx.rar_java socket _java 通讯_socket"暗示了这个压缩包可能包含了一些关于使用Java Socket进行...
7. **聊天小程序设计**: 这个小程序可能包含两个主要部分:服务器端应用程序负责接收多个客户端的连接,处理来自客户端的消息,并广播这些消息给其他所有在线的客户端;客户端应用程序则用于连接服务器,发送用户...
Java版的C/S简单Socket通讯是基于Java编程语言,利用Socket接口实现的客户端/服务器通信模型。在这个场景中,"SWT"(Standard Widget Toolkit)是用于构建图形用户界面(GUI)的库,它提供了丰富的控件和组件,使得...
- 通过`Socket`对象获取输入流和输出流,步骤与服务器端类似。 - 客户端可以使用这些流来发送数据到服务器,并接收服务器的响应。 - 完成通讯后,关闭`Socket`及其相关的输入/输出流。 在给定的文件列表中,...
Java Socket通信是Java编程语言中实现网络通信的基础组件,它提供了低级别的、面向连接的、双向的数据传输服务。在Java中,Socket类和ServerSocket类是进行网络通信的核心类。Socket用于客户端,它建立到服务器的...
3. **Java多线程**:为了处理多个并发的客户端连接,服务器端通常会使用多线程。每个Socket连接对应一个独立的线程,这样服务器可以同时处理多个用户的请求,提高系统效率。客户端可能也会使用多线程,例如,一个...
4. **点对点通讯**:在点对点通讯模式中,每个参与者既是服务提供者也是服务消费者,可以直接与其他节点通信。Java Socket可以实现这种模式,每个用户都可以直接连接到其他用户,发送和接收消息,无需经过中央服务器...
标题中的“GPS定位器GT06协议socket通讯JAVA源代码”揭示了本次讨论的主要内容,即使用Java编程语言实现GPS定位器(型号为GT06)的Socket通信协议。GPS定位器是用于获取地理位置信息的设备,而GT06协议是这种特定...