黑马程序员_网络编程(三)
来源:互联网 发布:7u分享网络微信打不开 编辑:程序博客网 时间:2024/04/30 06:53
------- android培训、java培训、期待与您交流! ----------
TCP传输
TCP网络传输是通过客户端(Socket类)和服务端(ServerSocket类)之间的通信来实现的。在创建Socket服务时对服务器端进行连接,如果连接成功,服务器端会获得客户端的Socket对象,彼此之间通过网络流进行通信。
首先是客户端向服务端发送数据:
基本步骤为:
1,创建Socket对象,建立服务,并向服务端请求连接
2,连接成功后,可通过Socket对象获取输入/输出流
3,发送数据
import java.net.*;import java.io.*;public class TcpClient {public static void main(String[] args) throws Exception {//1,创建客户端SocketSocket s = new Socket(InetAddress.getByName("localhost"),8888);//2,获取输出流,用于发送数据OutputStream out = s.getOutputStream();//3,发送数据out.write("我是数据".getBytes());//4,关闭资源s.close();}}
接下来编写服务端,只是为了验证传输是否成功,没有考虑多个客户端连接
基本步骤为:
1,建立ServerSocket服务并监听某一指定的端口
2,调用ServerSocket的accept方法接收请求连接的Socket,这个方法是阻塞式的
3,获取Socket中的输入流
4,读入数据
5,关闭Socket和ServerSocket,当然,一般服务器是不会关闭ServerSocket的
import java.net.*;import java.io.*;public class TcpServer {public static void main(String[] args) throws Exception {//1,创建ServerSocket服务ServerSocket ss = new ServerSocket(8888);//2,监听指定端口并接收数据Socket s = ss.accept();//打印客户端IPSystem.out.print("ip:" + s.getInetAddress().getHostAddress()+ "---");//3,读入数据并打印到控制台InputStream in = s.getInputStream();byte[] buf = new byte[1024];int len = in.read(buf);String data = new String(buf, 0, len);System.out.println(data);//4,关闭资源s.close();ss.close();}}
最终打印在控制台上的数据为:
ip:127.0.0.1---我是数据
0 0
- 黑马程序员_网络编程(三)
- 黑马程序员_网络编程(URL)
- 黑马程序员_网络编程(一)
- 黑马程序员_网络编程(二)
- 黑马程序员_网络编程(1)
- 黑马程序员_网络编程(2)
- 黑马程序员_网络编程(一)
- 黑马程序员_网络编程(二)
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- SnappyDB—Android上的NoSQL数据库
- 第5题:矩阵翻转
- mySQL中replace的用法
- 字符串
- 单点登录(二):原理代码分析
- 黑马程序员_网络编程(三)
- 如何将一个JavaEE项目打包成War文件
- ASP.NET购物车 - Ferry - 博客园
- 逆向/安全工具 小技巧 (整理)
- 数据结构课程设计(题2)
- Android Intent中的FLAG,很全
- 在table中tr的display:block在firefox下显示布局错乱问题
- 行内元素和块级元素
- 单点登录(三):自定义验证方式(数据库查询)和登录页修改