java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

一天的时间很快,要下班了。来段代码提提神,为了我破碎在上海的买房梦;

第一步:写出服务端代码,并启动(启动main函数):项目中如何真正的启动服务,读者可以温习下web.xml中的标签,及其作用;此处不表

import java.net.*;
import java.io.*;

public class <a href="http://www.cfei.net/archives/tag/socket" title="浏览关于“Socket”的文章" target="_blank" class="tag_link">Socket</a>Server {
	private ServerSocket ss;
	private Socket socket;
	private BufferedReader in;
	private PrintWriter pout;

	
//	static 
	public SocketServer() {
		try {
			ss = new ServerSocket(1000);
			while (true) {
				socket = ss.accept();
				String RemoteIP = socket.getInetAddress().getHostAddress();
				String RemotePort = &quot;:&quot; + socket.getLocalPort();
				System.out.println(&quot;A client come in!IP:&quot; + RemoteIP+ RemotePort);
				in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
				String line = in.readLine();
				System.out.println(&quot;Cleint send is :&quot; + line);
				//
				if(line.equals(&quot;UU&quot;)){
					line=&quot;what is ?&quot;;
					for (int i =1; i &lt; 5; i++) {
						System.out.println(i-1);
					}
				}
				pout = new PrintWriter(socket.getOutputStream(), true);
				pout.println(&quot;Client input is :&quot;+line);
				pout.close();
				in.close();
				socket.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
			pout.println(&quot;wrong&quot;);
		}
	}

	public static void main(String[] args) {
		new SocketServer();
	}
}

第二步:写出client端代码

import java.io.*;
import java.net.*;

public class SocketClient {
	Socket socket;
	BufferedReader in;
	PrintWriter out;

	public SocketClient() {
		try {
			System.out.println("Try to Connect to 127.0.0.1:1000");
			socket = new Socket("127.0.0.1", 1000);
			socket.setSoTimeout(2*1);
			System.out.println("The Server Connected!");
			System.out.println("Please enter some Character:");
			BufferedReader line = new BufferedReader(new InputStreamReader(System.in));//读取控制台输入
			out = new PrintWriter(socket.getOutputStream(), true);
			out.println(line.readLine());
			in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			System.out.println("===="+in.readLine());
			out.close();
			in.close();
			socket.close();
		} catch (IOException e) {
			out.println("Wrong");
		}
	}

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

客户端启动之后便可和服务端交互;

注意:服务端和客户端,输入流和输出流的顺序关系;

socketweb.xml标签java

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。