首先,创建一个javaproject,然后创建一个包。在包中创建方法类person以及主程序TestSocketServer。目录如下图所示:
person类中写入方法 sayHello(), 代码如下:
package com.rl.socket;
public class person {
public String sayHello(){
return "webservice Hello";
}
}
在TestSocketServer中写入主方法 代码如下:
package com.rl.socket;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TestSocketServer {
public static void main(String[] args) throws IOException {
//创建服务接口
ServerSocket ss = new ServerSocket(8899);
//接收请求
Socket s = ss.accept();
//调用服务端业务逻辑
String result = new person().sayHello();
//获得输出流
OutputStream out = s.getOutputStream();
//发送数据
out.write(result.getBytes());
//关闭资源
out.close();
s.close();
ss.close();
}
}
客户端调用
创建一个客户端javaproject 在程序中创建一个包 保重创建客户端测试类 TestSocketClient 代码如下
package com.rl.client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class TestScoketClietn {
public static void main(String[] args) throws Exception {
//创建socket 写入服务端IP地址 以及服务对应端口号
Socket s = new Socket("127.0.0.1",8899);
//获得输入流
InputStream in =s.getInputStream();
//获得返回值
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
//将返回值写入line并打印到控制台
while((line = reader.readLine()) != null){
System.out.println(line);
}
//关闭
in.close();
s.close();
}
}
测试
先启动服务端, (run as Java application)
然后运行客户端 (可以断点调试 效果比较不错 )。这是最简单的socket调用 ,希望给刚刚接触的您,带来一点点思路,一点点帮助。