JAVA Socket 网络联机 客户端 服务端 笔记
来源:互联网 发布:青蜂网络 编辑:程序博客网 时间:2024/05/22 14:51
①建立Socket连接,Socket(IP地址,TCP端口)
Socket类在java.net.Socket
Socket用于server与client的通信
import java.net.*;
//socket用以链接IP为"127.0.0.1",端口号为5000的服务器程序
Socket构造函数有两个参数,第一个是IP地址(IP=127.0.0.1表示本机,LocalHost,便于测试),第二个是TCP端口号(端口号可以取0-65535,其中0-1023被一些特定的端口使用,如HTTP是80,SMTP是25,FTP是20)
IP地址就像门牌号,指定特定的地方,TCP端口号就是该地址不同的窗口(如80号窗口处理网页,25号窗口处理邮件)
不同程序不能共享一个端口,如果使用的端口已经被占用,会抛出异常BIndException
②从Socket上读取数据(用BufferedReader)
InputStreamReader stream = new InputStreamReader(so.getInputStream());
//从Socket 取得输入流
BufferedReader reader = new BufferedReader(stream);
//输入的字节变为字符存入缓冲区
String message = reader.readLine();
//从缓冲区reader中读一行
③向Socket写入数据(用BufferedWriter与以上类似,此处用的是PrintWriter 写入字符串)
PrintWriter writer = new PrintWriter(so.getOutputStream());
//writer链接Socket输出流
writer.println("message to send");
writer.print("message to send")
//向writer直接写入字符串,有两种方式 println()(有换行)和print()
writer.flush();
//可以吧PrintWriter里的所有的信息都强制输入进Socket(以流的形式),在另一端可以以getInputStream()的形式接受
④编写客户端与服务器程序
编写服务器程序时,要特别注意:
需要两个Socket :
ServerSocket用于等待用户请求
Socket用于用户服务器通信
ServerSocket serverSock = new ServerSocket(4242);
//让服务器程序开始监听来自4242端口的客户端请求
(Socket so = new Socket("192.156.1.103",4242) 这是客户端程序与服务器建立的Socket链接)
Socket sock = serverSock.accept();
//等待用户时,accept()闲置;当有用户连上服务器时,accept()会返回一个新的Socket(赋予新的端口),于是ServerSocket可以空出等待其他的用户
一个幼稚版多线程聊天工具的服务端和客户端程序,用来测试:
- JAVA Socket 网络联机 客户端 服务端 笔记
- java网络编程--socket服务端客户端(1:1)
- Java Socket多线程服务端、客户端
- Java Socket多线程服务端、客户端
- 网络编程--udp--客户端--服务端--Socket
- java网络编程 (客户端、服务端)
- JAVA socket客户端和服务端 排列数字
- java socket编程,多线程,客户端服务端
- 基于Java Socket客户端、服务端聊天雏形
- socket ( java ) 简单客户端、服务端通信
- JAVA 双向SSL,SOCKET客户端/服务端
- java Socket客户端服务端通信小实例
- Java客户端C++服务端Socket交互通信
- java socket 服务端与客户端聊天
- java socket客户端和服务端实例
- JAVA SOCKET网络编程,服务端接收多个客户端连接的实现
- 网络编程--基于java socket通信,实现多个客户端连接同一服务端
- JAVA 网络编程 Socket 详细说明,实现客户端和服务端相互推送消息
- Android SDK下载与在eclipse中的安装(菜鸟来讲超慢易理解版)
- Win7系统设置Wifi热点(非原创)
- JAVA程序输出到.txt文件的换行符处理
- java.io 与对象序列化 笔记
- JAVA中private protected public 修饰符及JAVA默认修饰符(default acess)
- JAVA Socket 网络联机 客户端 服务端 笔记
- Building your own toolchain
- JAVA 多线程 笔记
- JAVA.util.Collections List的常用方法,sort()
- Java.util.Collections.sort(List l) 排序 [implements Comparable]
- JAVA 泛型(generic)
- JAVA 里的数据结构 Set List Map
- Java.util.Collections.sort(List l) 排序 [implements Comparator]
- JAVA 多态(以及多态在数组和ArrayList中的体现)