import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
* 发送消息
*/
class Send1 extends Thread{
private Socket socket;
private Scanner scanner;
public Send1(Socket socket,Scanner scanner){
this.socket = socket;
this.scanner = scanner;
}
@Override
public void run() {
this.sendMsg();
}
/**
* 发送消息
*/
private void sendMsg(){
try(PrintWriter pw = new PrintWriter(socket.getOutputStream());){
while(true){
String msg = scanner.nextLine();
pw.println(msg);
pw.flush();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 接收消息的线程
*/
class Receive1 extends Thread{
private Socket socket;
public Receive1(Socket socket){
this.socket = socket;
}
@Override
public void run() {
this.receiveMsg();
}
/**
* 接收消息
*/
private void receiveMsg(){
try(BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()))){
while(true){
String msg = br.readLine();
System.out.println("他说:"+msg);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
public class GoodTCP {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
try{
//键盘输入对象
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:server,<port> 或者:<ip>,<port>");
String str = scanner.nextLine();
String[] arr = str.split(",");
//启动服务端
if("server".equals(arr[0])){
//启动服务端
System.out.println("TCP Server Listen at "+arr[1]+".......");
serverSocket = new ServerSocket(Integer.parseInt(arr[1]));
socket = serverSocket.accept();
}else{
//启动客户端
socket = new Socket(arr[0],Integer.parseInt(arr[1]));
System.out.println("连接成功!");
}
//启动发送消息的线程
new Send1(socket,scanner).start();
//启动接收消息的线程
new Receive1(socket).start();
}catch(Exception e){
e.printStackTrace();
}finally{
if(serverSocket != null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java网络编程是指使用Java编程语言进行网络通信和相关操作的技术。通过Java的网络编程能力,开发人员可以创建客户端-服务器应用程序、实现数据传输、远程调用等功能。 Java的网络编程通常涉及以下几个方面: Socket编程:基于Socket套接字,通过TCP或UDP协议进行网络通信。通过创建Socket对象,程序可以在网络上进行数据传输和通信。 URL和URLConnection:Java提供了java.net.URL和java.net.URLConnection等类,用于访问URL指定的资源,如网页、文件等,并进行数据的读取和写入。 HTTP客户端:Java提供了java.net.HttpURLConnection等类,用于创建HTTP客户端并进行HTTP请求和响应的处理。 RMI(远程方法调用):Java的远程方法调用技术允许在不同的JVM(Java虚拟机)上执行方法调用,使得分布在多台计算机上的对象能够相互调用。 Socket服务端和客户端:开发基于Socket的服务端和客户端程序,实现双向通信和数据交换。 NIO(New I/O):Java NIO提供了非阻
资源推荐
资源详情
资源评论
收起资源包目录
网络编程.rar (68个子文件)
网络编程
socketdemo
socketdemo.iml 559B
src
BasicTypeUDPServer.java 827B
ChatSocketServer.java 2KB
InetSocketTest.java 456B
InetTest.java 419B
EchoServer.java 1KB
UrlTest.java 637B
TwoWaySocketServer.java 1KB
BasicSocketClient.java 518B
GoodTCP.java 3KB
UrlTest2.java 635B
InetTest2.java 449B
ChatSocketClient.java 2KB
ObjectTypeUDPServer.java 863B
BasicTypeUPDClient.java 958B
OneWaySocketClient.java 1KB
UDPClient.java 828B
TwoWaySocketClient.java 1KB
ChatRoomServer.java 3KB
OneWaySocketServer.java 1KB
ObjectTypeUDPClient.java 1KB
InetTest3.java 453B
UDPServer.java 824B
Person.java 576B
BasicSocketServer.java 1KB
out
production
socketdemo
BasicTypeUPDClient.class 2KB
Receive.class 1KB
ChatSocketServer.class 1KB
TwoWaySocketClient.class 2KB
InetTest.class 783B
Receive1.class 1KB
InetTest3.class 822B
Person.class 1KB
ClientSend.class 2KB
Msg.class 2KB
TwoWaySocketServer.class 3KB
BasicSocketClient.class 1KB
ChatRoomServer.class 2KB
BasicSocketServer.class 2KB
BasicTypeUDPServer.class 2KB
Send.class 2KB
OneWaySocketClient.class 3KB
Send1.class 1KB
ChatSend.class 1KB
ChatSocketClient.class 959B
UrlTest2.class 2KB
ChatReceive.class 2KB
InetTest2.class 822B
ObjectTypeUDPServer.class 2KB
GoodTCP.class 2KB
InetSocketTest.class 860B
UDPServer.class 1KB
ObjectTypeUDPClient.class 2KB
EchoServer.class 1023B
UrlTest.class 1KB
OneWaySocketServer.class 3KB
UDPClient.class 1KB
ClientReceive.class 2KB
.idea
uiDesigner.xml 9KB
checkstyleidea.tmp
qaplug_profiles.xml 41KB
runConfigurations.xml 346B
workspace.xml 5KB
misc.xml 624B
inspectionProfiles
Project_Default.xml 1KB
checkstyle-idea.xml 626B
modules.xml 267B
.gitignore 0B
aws.xml 304B
共 68 条
- 1
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功