Java tcp聊天

来源:互联网 发布:网络网警电话是多少 编辑:程序博客网 时间:2024/05/22 13:36
package p4.tcp;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;public class TCPClientDemo {public static void main(String[] args) throws IOException {//客户端发数据到服务端/* * Tcp传输,客户端建立的过程 * 1 创建tcp客户端socket服务。使用的是Socket对象 *  建议该对象一创建就明确目的地,要连接的主机 * 2 如果连接建立成功 说明数据传输通道已建立 * 该通道是socket流 是底层建立好的 既然是流说明这里 即有输入 又有输出 *  想要输入或输出流对象 可以找Socket来获取 *  可以通过getOutputStream() 和getInputStream()来获取两个字节流 * 3 使用输出流 将数据写出 * 4 关闭资源 *///1 创建客户端服务Socket socket=new Socket("10.194.43.59", 10002);//获取scoket流中的输出流OutputStream out=socket.getOutputStream();//使用输出流将指定的数据写出去String ip=socket.getInetAddress().getHostAddress();out.write("演示:哥们又来了".getBytes()); //关闭资源socket.close();}}


package p4.tcp;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;public class TCPServerDemo {public static void main(String[] args) throws IOException, IOException {//服务端接收客户端 发送过来的 数据 并打印在控制台上/* * 建立tcp服务端的数据 * 1 创建服务端socket服务 通过ServerSocket对象 * 2 服务端必须对外提供一个端口 否则客户端 无法连接 * 3 获取连接过来的客户端对象 * 4 通过客户端对象 获取socket流读取客户端发来的数据 * 5 关闭资源 关客户端 关服务端 *  *///1 创建服务端对象ServerSocket ss=new ServerSocket(10002);//2 获取连接过来的客户端对象Socket s=ss.accept();//3 通过socket对象获取输入流 要读取客户端发来的数据 InputStream in=s.getInputStream();String ip=s.getInetAddress().getHostAddress();byte[]buf=new byte[1024];int len=in.read(buf);String text=new String(buf, 0, len);System.out.println(ip+":"+text);s.close();ss.close();}}


package p4.tcp;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class TCPClientDemo2 {public static void main(String[] args) throws IOException {//客户端发数据到服务端/* * Tcp传输,客户端建立的过程 * 1 创建tcp客户端socket服务。使用的是Socket对象 *  建议该对象一创建就明确目的地,要连接的主机 * 2 如果连接建立成功 说明数据传输通道已建立 * 该通道是socket流 是底层建立好的 既然是流说明这里 即有输入 又有输出 *  想要输入或输出流对象 可以找Socket来获取 *  可以通过getOutputStream() 和getInputStream()来获取两个字节流 * 3 使用输出流 将数据写出 * 4 关闭资源 */Socket socket=new Socket("10.194.43.59", 10002);OutputStream out=socket.getOutputStream();String ip=socket.getInetAddress().getHostAddress();out.write("演示:哥们又来了".getBytes());//读取服务端返回的数据 要使用socket读取流InputStream in=socket.getInputStream();byte[]buf=new byte[1024];int len=in.read(buf);String text=new String(buf, 0, len);System.out.println(text);socket.close();}}



package p4.tcp;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;public class TCPServerDemo2 {public static void main(String[] args) throws IOException, IOException {//服务端接收客户端 发送过来的 数据 并打印在控制台上/* * 建立tcp服务端的数据 * 1 创建服务端socket服务 通过ServerSocket对象 * 2 服务端必须对外提供一个端口 否则客户端 无法连接 * 3 获取连接过来的客户端对象 * 4 通过客户端对象 获取socket流读取客户端发来的数据 * 5 关闭资源 关客户端 关服务端 *  *///1 创建服务端对象ServerSocket ss=new ServerSocket(10002);//2 获取连接过来的客户端对象Socket s=ss.accept();//阻塞式 没有客户端连入则等待//3 通过socket对象获取输入流 要读取客户端发来的数据 InputStream in=s.getInputStream();String ip=s.getInetAddress().getHostAddress();byte[]buf=new byte[1024];int len=in.read(buf);String text=new String(buf, 0, len);System.out.println(ip+":"+text);//使用客户端socket对象的输出流给客户端返回数据OutputStream out=s.getOutputStream();out.write("收到".getBytes());s.close();ss.close();}}


原创粉丝点击