求助 java socket编程c/s在同一台机器上与c/s在不同机器上的区别

问题描述

socket程序,cs在同一个机器上可以正常传递数据,但cs分别在两个机器上就多出了一些数据这是什么原因。列入程序如下;ClientApp.javaimportjava.net.*;importjava.io.*;importjava.lang.*;publicclassClientApp{publicstaticvoidmain(Stringargs[]){try{//创建通讯并且和主机Rock连接SocketcSocket=newSocket("127.0.0.1",8000);//打开这个Socket的输入/输出流OutputStreamos=cSocket.getOutputStream();DataInputStreamis=newDataInputStream(cSocket.getInputStream());intc;booleanflag=true;Stringresponseline;while(flag){//从标准输入输出接受字符并且写如系统while((c=System.in.read())!=-1){os.write((byte)c);if(c=='e'){os.flush();//将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来responseline=is.readLine();System.out.println("Messageis:"+responseline);}}}os.close();is.close();cSocket.close();}catch(Exceptione){System.out.println("Exception:"+e.getMessage());}}}服务器程序ServerApp.javaimportjava.net.*;importjava.io.*;publicclassServerApp{publicstaticvoidmain(Stringargs[]){try{booleanflag=true;SocketclientSocket=null;StringinputLine;intc;ServerSocketsSocket=newServerSocket(8000);System.out.println("Serverlistenon:"+sSocket.getLocalPort());while(flag){clientSocket=sSocket.accept();DataInputStreamis=newDataInputStream(newBufferedInputStream(clientSocket.getInputStream()));OutputStreamos=clientSocket.getOutputStream();while((inputLine=is.readLine())!=null){//当客户端输入stop的时候服务器程序运行终止!if(inputLine.equals("stop")){flag=false;break;}else{System.out.println(inputLine);while((c=System.in.read())!=-1){os.write((byte)c);if(c=='e'){os.flush();//将信息发送到客户端break;}}}}is.close();os.close();clientSocket.close();}sSocket.close();}catch(Exceptione){System.out.println("Exception:"+e.getMessage());}}}分别在莲台机器上运行,(也改了ClientApp的ip)就会多出一些东西来。

解决方案

解决方案二:
多出了啥?这你也让我们猜吗?Socket不会因机器不同而不同。
解决方案三:
不应该,socket没有本机和多机差异。
解决方案四:
没什么特别不同的地方
解决方案五:
两台不同的机器的操作系统是一样的吗?如果是的话,那你就吧代码贴出来给大家看看。如果两台机器操作系统不一样,这样的情况我倒是碰到过:Symbian上的j2me程序和AIX上的C++程序通讯时,当时是用iconv解决的。
解决方案六:
xixi:)boy,plsnoticeyourIP
解决方案七:
同样都是windowsxp,多出来一些字符窜例如:“aagg。。。”

时间: 2024-09-13 18:37:01

求助 java socket编程c/s在同一台机器上与c/s在不同机器上的区别的相关文章

java socket 编程遇到的问题

问题描述 最近初步学习java socket 编程的时候遇到一个问题就是,当客户端向服务端发送数据时,会出现不能输入也不能,程序卡住的现象,尤其是中文,最多输入两行,控制台就不能再输入数据(客户端输入是用system.in来从键盘获取数据).英文字符还好一些,但也会出现此种状况,百思不得其解!代码如下:server:package dragon.socket;import java.io.BufferedReader;import java.io.IOException;import java.

c-【求助】SOCKET编程,网络编程

问题描述 [求助]SOCKET编程,网络编程 本人自学SOCKET,跟着教程写了几行代码 但是接收(recv)那个循环里面总是出问题,具体情况是运行到第二次的时候程序就蹦了. 我的改进:后来经过一天的思考推敲我发现是有一中返回情况SOCKET_ERRO没有处理 于是家进入了 但还是错误,所以特来贵吧寻求帮助,(ps:我之前试过不用realloc扩大空间储存程序是ok的,但是用了realloc就出问题了,但是我觉得主要问题又不是在realloc哪里,可能是recv那里),求大神花上几分钟看看我的代

java-急求Java socket编程实现两个客户端通信通过服务器转发不要图形界面不用连接数据库

问题描述 急求Java socket编程实现两个客户端通信通过服务器转发不要图形界面不用连接数据库 实现两个客户端通信通过服务器转发不要图形界面不用连接数据库 求源码 解决方案 通过服务器,也就是说各个客户端与服务器要正常通讯,这是最基本的要求.这个要求应该不难吧,网上有很多类似的代码,如Android Socket 编程(WIFI 和 ADB),这是我在 CSDN 博客中的一篇文章,希望对你有帮助. 然后呢,做协议,当服务器接收到数据满足一定的格式.或所有数据,都转发到另一端. 解决方案二:

Java Socket编程实现简单的问候服务_java

本文实例讲解了Java Socket编程实现简单的问候服务的详细代码,供大家参考,具体内容如下 服务器端: 实现一个最简单的Hello服务,打印输出客户端IP地址到控制台,对任何连接的客户端都会发送一串字符(Hello, Java Socket)然后关闭与客户端连接.等待下一个客户端的连接请求到来. 客户端: 实现一个最简单的Socket连接到Hello服务器端,接受服务器端发送过来的字节数据打印并输出内容到控制台. 关键技巧: 由于JAVA中提供非常多的输入与输出流API,导致很多初学者接触J

java scoket http请求-求教:java socket编程接受HTTP请求出问题

问题描述 求教:java socket编程接受HTTP请求出问题 自己用Java scoket模拟编写接受http请求服务器,在浏览器中输入1次url地址,浏览器却会向服务器发送多次相同请求,这是什么原因? 以下是eclipse控制台打印的结果,可以看到浏览器发送了多次 /1234567890 请求,浏览器中地址栏只输入1次 http://localhost:8080/1234567890 eclipse控制台打印的结果: 初始化线程池,线程池中拥有10个线程可使用 初始化 base-param

java socket编程如何测量文件传输速度?

问题描述 java socket编程如何测量文件传输速度? 作业需要,分别写了一个基于tcp和udp的传输文件的程序,想测试两者同时传输时各自的传输速度 请问有什么方法可以实现? 解决方案 发送时发送一个记录客户端时间的包,同时记录好这个包的大小 .服务端在收到这个包后,拆包.取出客户端时间和自己的服务端时间时行差值计算. 然后,接下去就好做了 解决方案二: 类似问题的,http://bbs.csdn.net/topics/391036058,建议参考一下看看 解决方案三: 在发送数据的时候获取

Java socket编程入门

编程 第一章:学习提示 我适合学习这份教程吗 Socket提供了两台计算机之间进行通讯的机制,在James Gosling注意Java语言之前就已经很闻名了.Java语言使你更简单有效的使用Socket开发而无需了解操作系统的底层机制.大部分讨论Java编码的书籍都没有涉及这一主题,或者是只是"点到为止",留给读者大量的想象空间.这份教程就是让你了解在你的Java代码中如何更有效的使用Socket所需的知识.包含以下内容: •什么是Socket •它位于你的应用程序的哪些地方 •能正常

Java socket编程入门[1]

编程 第一章:学习提示 我适合学习这份教程吗 Socket提供了两台计算机之间进行通讯的机制,在James Gosling注意Java语言之前就已经很闻名了.Java语言使你更简单有效的使用Socket开发而无需了解操作系统的底层机制.大部分讨论Java编码的书籍都没有涉及这一主题,或者是只是"点到为止",留给读者大量的想象空间.这份教程就是让你了解在你的Java代码中如何更有效的使用Socket所需的知识.包含以下内容:•什么是Socket•它位于你的应用程序的哪些地方•能正常运行的

Java Socket编程----通信是这样炼成的

Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术.下面就让我们一起揭开Socket的神秘面纱. Socket编程 一.网络基础知识(参考计算机网络) 关于计算机网络部分可以参考相关博客: TCP/IP协议栈及OSI参考模型详解> http://wangdy.blog.51cto.com/3845563/1588379 1.两台计算机间进行通讯需要以