今天学习如何简单使用SOCKTE编程了。
本想看看如何用socket和serversocket相互通信
稀里糊涂的就犯了一些错误,
主要是对socket的inputstream和outputstream流的使用上出现错误。
1.writer的flush方法必须调用
以下是客户端socket的使用方式
pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
msg = "req" + count + [color=red]"\n";[/color]
pw.write(msg);
pw.[color=red]flush[/color]();
服务器serversocket中接受客户端传送的数据
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
while ((msg = br.readLine()) != null) {
Print.print(msg);
break;
}
在这段代码中,要注意上面标红的地方。
首先,如果在客户端传送消息中不加入“\n”符号,服务端的 br.readLine()) 就会一直阻塞,因为 BufferedReader.readLine() 是读取一个文本行,通过判断换行 ('\n')、回车 ('\r') 或回车后直接跟着换行来决定是不是已经读入一行了。
其次,writer.flush()方法如果不调用的话,客户端发送的消息会被存入缓存,这样服务端的 br.readLine()) 就会一直阻塞,得不到数据。
出现这俩个问题,是因为我对流的方法和底层实现不清楚,基础还差很多啊
分享到:
相关推荐
在Java编程领域,网络编程是不可或缺的一部分,而Socket通信则是实现网络数据传输的基础。本案例主要探讨了如何使用Java的Socket API进行简单的文件传输。在这个过程中,我们将涉及到以下几个关键知识点: 1. **...
在描述中的"socket---网上广播"可能指的是使用多播Socket进行网络通信。 在实现网上广播时,服务器不仅需要监听普通TCP连接,还需要加入一个多播组,通过`MulticastSocket`发送数据到多播组。而客户端则需要创建`...
在这个“Java网络编程-Socket-文件传输小案例”中,我们将深入探讨如何利用Java的Socket API进行文件的传输。首先,我们需要了解Socket的基本概念。 Socket,通常被称为套接字,是网络编程中的一个接口,它允许两个...
"华科-计算机网络实验报告-Java_Socket编程-网络组建实验.docx" 这份实验报告主要涵盖了计算机网络实验的两个部分:Socket 编程和网络组建实验。下面是对这两部分的详细解释和知识点总结: Socket 编程 Socket ...
聊天室项目是学习Java网络编程和TCP协议的一个好例子,因为它涉及到多线程、异步通信和数据共享等核心概念。同时,你还可以在此基础上添加更多的功能,比如用户身份验证、私聊、文件传输等,进一步提升聊天室的实用...
这些章节的PPT文件(chapter1至chapter15)可能分别涵盖了以上提到的各个主题,通过逐步学习和实践,读者可以全面掌握Java网络编程的关键技术和应用。书中的每个章节都可能包含深入的讲解、示例代码和习题,帮助读者...
### Java编程中的Socket与网络编程详解 #### 一、Socket编程概述 Socket编程是Java网络编程的核心技术之一,主要用于实现不同计算机之间的通信。通过Socket,应用程序可以在网络上发送和接收数据,实现分布式系统...
Java Socket 编程在计算机网络实验中的应用 Java Socket 编程是计算机网络实验中的一个重要组成部分,它允许开发者创建可以在网络上传输...通过学习 Java Socket 编程,可以帮助学生更好地理解网络编程的原理和应用。
分析和学习这些源代码可以帮助我们理解如何在实际项目中应用Java网络编程技术。 此外,开发此类应用程序还需要考虑到安全性、并发处理、错误处理和性能优化等方面。例如,使用线程池来处理多个并发连接,加密敏感...
在Java编程语言中,Socket是实现网络通信的基本组件。"Java Socket学习---单线程阻塞"这个主题主要探讨了如何使用Java的Socket类进行单线程的阻塞式通信,这种模式通常用于简单的客户端-服务器应用。在这个场景中,...
基于Java--Socket-网络编程.doc
在这个"java网络编程--简单实现信息交换.rar"的压缩包中,我们主要关注的是如何使用Java的Socket类来实现两个进程之间的信息交换。Socket是TCP/IP协议族的一部分,提供了进程间通信(IPC)的能力,尤其在跨网络环境...
Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口来实现,而 Socket 编程则...
在Java编程中,Socket是网络通信的基础,它允许两个网络应用程序之间进行数据交换。本教程主要探讨的是如何在Java中使用Socket实现多线程阻塞式通信,这通常涉及到服务器端(EchoServer)和客户端(EchoClient)的...
总结来说,Java网络编程中的CS模型实现主要涉及Socket类和ServerSocket类的使用,以及通过输入/输出流进行数据交换。理解这些基本概念并能实际操作,将有助于你在开发网络应用程序时游刃有余。在实践中,还可以考虑...
JAVA网络编程资料(1)-Socket套接字—Java套接字编程.chm
Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程中最基本的组件,用于实现网络通信。...
使用JAVA编写网络通信程序 .doc Java网络编程 ...《JAVA编程规范》.doc Java基础 三步学会Java Socket编程(一) .doc Java基础 三步学会Java Socket编程(二) .doc Java基础 三步学会Java Socket编程(三).doc