非常简单的socket例子

本文提供了一个 Java Socket 服务器与客户端的简单示例,通过该示例可以了解如何建立 Socket 连接并进行数据收发。服务器监听 6600 端口,接收客户端发送的消息,并返回经过处理的响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


www.diy567.com累了,去上面休息一下下,QQ空间,美文,非主流,网络日记,搞笑短信,祝福短信,热门短信,有意思啊

 

socket server类,接收请求

package com.wonder.socketexample;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public class SocketServer {

ServerSocket serverSocket = null;
Socket socket = null;
DataInputStream inStream = null;
DataOutputStream outStream = null;

public SocketServer() {
try {
serverSocket = new ServerSocket(6600);
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
SocketServer socketServer = new SocketServer();
socketServer.waitForClient();
}

public void waitForClient() {

try {
// 获取socket,设置inStream和outStream
socket = serverSocket.accept();

inStream = new DataInputStream(socket.getInputStream());
outStream = new DataOutputStream(socket.getOutputStream());
outStream.writeUTF("ready!");
//socket.setSoTimeout(3000);
// 接收和发送数据
acceptAndSendData();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private void acceptAndSendData() {
boolean flag = true;

while (flag) {
try {
String acceptStr = inStream.readUTF();
System.out.println("客户端输入信息:" + acceptStr);

if ("exit".equals(acceptStr)) {
System.out.println("服务结束。");
break;
} else {
String sendStr = String.valueOf("服务器处理:"+new Date());
outStream.writeUTF(sendStr);
}
} catch (IOException e) {
e.printStackTrace();
break;
}
}

}

}

-----------------------------------------

socketclient例子,输入内容,然后发给socket ,exit退出

package com.wonder.socketexample;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class SocketClient {

Socket socket = null;
DataInputStream inStream = null;
DataOutputStream outStream = null;

public SocketClient() {
try {
init();
waitData();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

private void waitData() {
boolean flag = true;
while (flag) {
try {
String acceptStr = inStream.readUTF();
System.out.println("客户端接收到: " + acceptStr);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while (str != null) {
System.out.print("> prompt ");
str = in.readLine();
if("exit".equals(str)){
System.out.println("系统退出。");
outStream.writeUTF(str);
return;
}
outStream.writeUTF(str);
}
} catch (Exception e) {
e.printStackTrace();
break;
}

}

}

private void init() throws UnknownHostException, IOException {
socket = new Socket("127.0.0.1", 6600);
inStream = new DataInputStream(socket.getInputStream());
outStream = new DataOutputStream(socket.getOutputStream());
//socket.setSoTimeout(3000);
}

public static void main(String[] args) {
SocketClient client = new SocketClient();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值