`
aa8945163
  • 浏览: 270692 次
  • 性别: 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);
			}
	    }
}


分享到:
评论

相关推荐

    Java聊天室的设计与实现Java聊天室的设计与实现

    在实现过程中,可以使用Java的Socket编程来实现服务器端和客户端之间的通讯。通过Socket编程,服务器端和客户端可以建立TCP连接,并进行数据的传输。 此外,为了提高用户体验,可以考虑在客户端实现消息的格式化...

    java一个简单的即时通讯工具的设计与开发.rar

    设计与开发一个简单的即时通讯工具,可以采用客户端/服务器(Client/Server)架构,基于Java语言进行实现。以下是该工具的设计与开发描述: 功能需求: 用户注册与登录:用户可以注册新账号,并使用已有账号进行...

    基于Java+Socket的网络聊天系统开发与设计

    近年来随着计算机技术的飞速发展,特别是 Internet 技术的发展,已经深刻 的改变到了人们生活的方方面面。这时过去的种种陈旧的通讯方式,都已经不能 ...为了实现多用户的连接,在服务器端将采用多线程 的技术来实现。

    java实现即时通讯代码

    本程序使用的是 TCP 协议实现的即时通信软件,程序是基于 Java 语言开发的,主要用到的技术有: Socket 编程 自定义协议 如果使用普通的方法来标记一条消息的结束,如换行符,那么程序就不易扩展,只能发送纯文本...

    基于Socket的网络聊天系统开发与设计.doc

    本人以基于Java语言开发的网络聊天系统为实践基础,详细的介绍了聊天系统的功能设计和界面逻辑结构。最终实现了一个可以实现私聊、群聊、传送文件的网络...为了实现多用户的连接,在服务器端将采用多线程的技术来实现。

    GuQiu-JAVA做的局域网通讯源码

    一个使用JAVA语言做的局域网即时通讯软件项目,实现了多人局域网通讯,传文件功能!无须专门的服务器,每个窗户端都是服务器,也是客户端,使用SOCKET实现!还使用了自定义的协议,想要学习JAVA网络通讯的人这个必需下载了!!

    JAVA实战项目源码-计算机毕业设计java专业-项目源码-项目说明介绍-基于JAVA的网络通讯系统设计与实现(论文+系统)

    一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    基于JAVA的网络通讯系统设计与实现(WORD论文文档+系统).zip

    一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java实现一个简单的即时通讯工具的设计与开发(源代码+论文)

    一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信。

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    基于JAVA的网络通讯系统设计与实现(论文+系统)

    一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,...

    基于Java的视频会议系统(软件程序+WORD论文文档).zip

    网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    聊天程序源代码(java语言)

    用java语言编写的聊天程序,包含客户端和服务器端。是学习java中GUI,IO流,SOCKET通讯的好例子。

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    基于java的网络通讯系统设计与实现毕业设计(说明报告+系统)

    一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间

Global site tag (gtag.js) - Google Analytics