java网络编程之Tcp协议下的聊天小程序
来源:互联网 发布:厨艺软件 编辑:程序博客网 时间:2024/05/23 19:49
需求:服务端和客户端实现一句一句的聊天。
服务端
package com.itheima;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;public class MyChatService { public static void main(String[] args) throws IOException { // 获取serverSocket的服务 ServerSocket serverSocket = new ServerSocket(9090); // 获取socket Socket socket = serverSocket.accept(); // 获取socket输入流包装 BufferedReader bufferdreader = new BufferedReader( new InputStreamReader(socket.getInputStream())); // 获取标准的输入流包装 BufferedReader reader = new BufferedReader(new InputStreamReader( System.in)); // 获取 输出流包装成buffered BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())); //判断从客户端发来的信息是否为空,输入信息,写信息 String str = ""; while ((str = bufferdreader.readLine()) != null) { System.out.println("客户端发来消息:"+str); str =reader.readLine(); writer.write(str + "\r\n"); writer.flush(); } serverSocket.close(); }}
客服端
package com.itheima;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.security.KeyRep;
import javax.xml.ws.handler.MessageContext.Scope;
/*
发消息给服务端
接受服务端的消息
*/
public class MyChatClient {
public static void main(String[] args) throws IOException, IOException {
// 创建socket的服务
Socket socket = new Socket(InetAddress.getLocalHost(), 9090);
// 获得标准输入流,并包装 BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(System.in)); // 获得流对象的输出流 BufferedWriter bufferedWriter = new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())); // 读取输入流中的数据如果不等于空,写信息。输入信息。
// bufferedWriter.write(“hello 服务端 \r\n”);
// bufferedWriter.flush();
// 获取socket的输入流,包装并输出 BufferedReader reader = new BufferedReader(new InputStreamReader( socket.getInputStream())); //如果流服务器,接受的数据不等于空,读出socket数据,写标准流数据 String str = ""; while ((str = bufferedReader.readLine()) != null) { bufferedWriter.write(str + "\r\n"); bufferedWriter.flush(); str = reader.readLine(); System.out.println("服务端发来消息:"+str); } socket.close();}
}
0 0
- java网络编程之Tcp协议下的聊天小程序
- Linux网络编程之聊天程序(TCP协议之select)
- 基于TCP协议的Java聊天小程序
- Linux网络编程之聊天程序(TCP协议之fork进程)
- java 基于网络编程的聊天小程序
- 网络编程应用:基于TCP协议【实现一个聊天程序】
- Java网络编程之TCP协议下—上传文件到服务器程序
- Java 网络 UDP 一个局域网下的聊天小程序
- (怒赞)java实现TCP协议和UDP协议的 聊天小程序
- 网络编程学习笔记(二)UDP协议及聊天小程序的实现
- 《java入门第一季》之tcp协议下的网络编程
- 《java入门第一季》之tcp协议下的网络编程c/s实现通信交互
- 黑马程序员----网络编程TCP协议聊天
- Java中网络编程之TCP协议
- java网络编程之UDP、TCP协议
- 《java入门第一季》之UDP协议下的网络编程小案例
- JAVA程序设计:基于TCP协议的聊天程序
- 【Java网络编程】UDP协议实例——简单的在线聊天程序
- 堆排序(优先队列)——合并果子
- LeetCode(231) Power of Two
- Gym 100801G Graph(贪心构造)
- Ipython基础
- codeforces 622F. The Sum of the k-th Powers (拉格朗日插值法)★
- java网络编程之Tcp协议下的聊天小程序
- JavaScript(1)初识
- jquery防百度搜索框模糊匹配
- merge-sorted-array-leetcode-C++
- 关于单片机编程与其调试的零散知识收集
- 《Andorid开发艺术探索第七章》-动画
- php编译安装与配置
- Web分页实现及实例演示(二)——MySql limit
- 学习Android onTouch偶然遇到的关于获取点击坐标(getX(),getY())的问题