通过TCP实现客户端服务端简单链接案例
2018-01-02 15:40
609 查看
package com.iotek.tcpsocket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) throws IOException {
//创建一个ServerSocket对象
ServerSocket serversocket=new ServerSocket(8812);
//调用accept()方法来接收客户端请求
Socket socket=serversocket.accept();
System.out.println(socket.getInetAddress().getHostAddress()+"连接成功了");
//获取socket对象输入输出流
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//PrintWriter可以替代BufferedWriter,实现自动刷新换行
PrintWriter pw=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
String line=null;
//读取客户端传过来的数据
while((line=br.readLine())!=null){
if(line.equals("over")){
System.out.println(socket.getInetAddress().getHostAddress()+"断开了连接");
break;
}
System.out.println(line);
//bw.write(line.toUpperCase());//把大写转换成大写的字符串,传给客户端
//bw.newLine();
//bw.flush();//可能缓冲区没有写满,不会写出去,这里是强制输出
pw.println(line.toUpperCase());
}
br.close();
pw.close();
socket.close();
serversocket.close();
}
}
package com.iotek.tcpsocket; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class TCPClient { public static void main(String[] args) throws UnknownHostException, IOException { Socket socket=new Socket("192.168.1.3",8812); BufferedReader br=new BufferedReader( new InputStreamReader(System.in)); // BufferedWriter bw=new BufferedWriter( // new OutputStreamWriter(socket.getOutputStream())); PrintWriter pw=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true); BufferedReader reader=new BufferedReader( new InputStreamReader(socket.getInputStream())); while(true){ String line=br.readLine();//获取键盘所输入的字符串 // bw.write(line); // bw.newLine();//加了换行以后才让服务器端知道一行结束了 // bw.flush(); pw.println(line); if(line.equals("over")){ System.out.println("断开连接"); break; } System.out.println(reader.readLine());//获取服务端传来的大写字符串 } reader.close(); br.close(); pw.close(); socket.close(); } }
相关文章推荐
- c语言实现socket服务端/客户端通过tcp传送文件
- 利用TCP和多线程实现服务端和多个客户端建立实时聊天小案例
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- Go实战--实现一个简单的tcp服务端和客户端(The way to go)
- 利用Tcp和socket实现的客户端与服务端的简单通信
- 基于TCP实现简单的客户端服务端的消息传递
- 基于TCP实现简单的客户端服务端的消息传递(二)
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用之案例分析
- Java简单实现TCP服务端和客户端通信
- windows socket简单使用--实现客户端链接服务端并发送和接收数据
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- 01 TCP Socket 编程_一个简单的服务端程序和客户端程序实现
- NIO学习之Selector,SelectionKey与客户端与服务端通信简单实现(1)
- C# TCP实现多个客户端与服务端 数据 与 文件的传输
- java网络编程之服务端客户端socket简单通信案例
- C++ 简单的 Tcp 实现[socket] 客户端与客户端通信
- C++ 简单的 Tcp 实现[socket] 服务器端与客户端通信
- Socket编程简单实现服务端客户端连接
- java 通过 socket 实现 服务器和客户端的通信 TCP
- MyEclispe基于JAX-WS的WebService服务端客户端简单实现示例