(53)Java学习笔记——网络编程 / TCP协议

来源:互联网 发布:任天堂vb算vr吗 编辑:程序博客网 时间:2024/05/23 19:14

TCP协议

TCP协议发送数据

 * A / 创建发送端的Socket对象,这一部如果成狗,就说明连接已经建立成功
 * B / 获取输出流,写数据
 * C / 释放资源

创建发送端对象用到的方法:

Socket(InetAddress address, int port)    //  创建一个流套接字并将其连接到指定 IP 地址的指定端口号。

Socket(String host, int port)   //创建一个流套接字并将其连接到指定主机上的指定端口号。
获取输出流的方法:

public OutputStreamgetOutputStream()  //返回此套接字的输出流。

发送端代码范例:

package cn.itcast_01;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;/* * TCP协议发送数据 * A / 创建发送端的Socket对象,这一部如果成功,就说明连接已经建立成功 * B / 获取输出流,写数据 * C / 释放资源 */public class ClientDemo {public static void main(String[] args) throws IOException, IOException {//创建发送端对象//Socket(InetAddress address, int port)    //  创建一个流套接字并将其连接到指定 IP 地址的指定端口号。//Socket(String host, int port)   //创建一个流套接字并将其连接到指定主机上的指定端口号。//Socket s = new Socket(InetAddress.getByName("192.168.0.8"),8888);Socket s = new Socket("192.168.0.8",8888);//获取输出流,写数据//public OutputStream getOutputStream()OutputStream os = s.getOutputStream();os.write("hello,tcp.我来了".getBytes());//释放资源s.close();}}
TCP协议接收数据

ServerSocket(int port)  //创建绑定到特定端口的服务器套接字。

publicSocketaccept()  //

TCP接收端代码

package cn.itcast_01;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;/* * TCP协议接收数据 * A / 创建接收端的Socket对象 * B / 监听客户端连接,返回一个对应的Socket对象 * C / 获取输入流,读取数据显示在控制台 * D / 释放资源 */public class ServerDemo {public static void main(String[] args) throws IOException {//创建接收端的Socket对象//ServerSocket(int port)  //创建绑定到特定端口的服务器套接字。ServerSocket ss = new ServerSocket(8888);//监听客户端连接,返回一个对应的Socket对象//public Socket accept()  //Socket s = ss.accept();//阻塞式方法//获取输入流,读取数据显示在控制台InputStream is = s.getInputStream();byte[] bys = new byte[1024];int len = is.read(bys);String str = new String(bys,0,len);//获取发送方IP地址String ip = s.getInetAddress().getHostAddress();System.out.println(ip+":"+str);//释放资源s.close();}}

范例01:服务器给客户端发回一个反馈

客户端:

package cn.itcast_01;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/* * TCP协议发送数据 * A / 创建发送端的Socket对象,这一部如果成功,就说明连接已经建立成功 * B / 获取输出流,写数据 * C / 释放资源 */public class ClientDemo {public static void main(String[] args) throws IOException, IOException {//创建发送端对象//Socket(InetAddress address, int port)    //  创建一个流套接字并将其连接到指定 IP 地址的指定端口号。//Socket(String host, int port)   //创建一个流套接字并将其连接到指定主机上的指定端口号。//Socket s = new Socket(InetAddress.getByName("192.168.0.8"),8888);Socket s = new Socket("192.168.0.8",8888);//获取输出流,写数据//public OutputStream getOutputStream()OutputStream os = s.getOutputStream();os.write("今天风很大,不要出门!".getBytes());//获取输入流InputStream is = s.getInputStream();byte[] bys = new byte[1024];int len = is.read(bys);String client = new String(bys,0,len);System.out.println("client:"+client);//释放资源s.close();}}

服务器端:

package cn.itcast_01;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;/* * TCP协议接收数据 * A / 创建接收端的Socket对象 * B / 监听客户端连接,返回一个对应的Socket对象 * C / 获取输入流,读取数据显示在控制台 * D / 释放资源 */public class ServerDemo {public static void main(String[] args) throws IOException {//创建接收端的Socket对象//ServerSocket(int port)  //创建绑定到特定端口的服务器套接字。ServerSocket ss = new ServerSocket(8888);//监听客户端连接,返回一个对应的Socket对象//public Socket accept()  //Socket s = ss.accept();//阻塞式方法//获取输入流,读取数据显示在控制台InputStream is = s.getInputStream();byte[] bys = new byte[1024];int len = is.read(bys);String server = new String(bys,0,len);System.out.println("server:"+server);//获取输出流OutputStream os = s.getOutputStream();os.write("数据已收到".getBytes());//释放资源s.close();}}
范例02:客户端键盘录入,服务器写到文本

客户端:

package cn.itcast_02;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;/* * 客户端 */public class ClientDemo {public static void main(String[] args) throws IOException {//创建客户端Socket对象Socket s = new Socket("192.168.0.8",23456);//封装键盘录入BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//封装通道内数据BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));String line = null;while((line = br.readLine())!=null){if("over".equals(line)){break;}bw.write(line);bw.newLine();bw.flush();}//关闭s.close();}}
服务端:

package cn.itcast_02;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;/* * 服务器 */public class ServerDemo {public static void main(String[] args) throws IOException {//创建服务器Socket对象ServerSocket ss = new ServerSocket(23456);//监听客户端连接Socket s = ss.accept();//封装通道内数据BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));//封装文本文件BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));String line = null;while((line = br.readLine())!=null){bw.write(line);bw.newLine();bw.flush();}bw.close();s.close();}}










0 0
原创粉丝点击