java_Socket

最近学net包下的类.从而结合ui来写出客户端与服务端,一对多的结合.
服务端总体代码有
ServerSocket,socket ,bufferedreader,printWriter.
最后的结束.




在UI界面中的实现.利用多线程来显示客户端的连接.
	new Thread() {

			public void run() {
				ServerSocket server = null;
				try {
					server = new ServerSocket(port);
					UiServer.this.jTextArea1.append("服务启动成功\n");
					//监听客户端(一直监听)
					while (true) {
						//接收信息
						Socket client = server.accept();

						//使用工具类[实施双方的通讯]
						
						new MuServerSocket(UiServer.this, client).start();
					}

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

			};
		}.start();



在写client端的时候.要注意端口跟服务端的端口一致.而且服务端一个端口只能开一次..将需要连接到的方法分散开来,在ui中实现便捷的操作.

package com.demo.Ui;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

//负责连接服务端,向服务端发送信息的操作
public class SocketClient {

	static int port = 9999;
	// 创建流
	private PrintWriter out = null;
	private Socket client = null;
	private ClientSocket cs = null;
	 

	SocketClient(ClientSocket cs) {
		this.cs = cs;

	}

	public void createConnect(String address,int port){
		try {
			client=new Socket(address, port);
			
			//获得输出管道
			out=new PrintWriter(client.getOutputStream());
			
		    this.cs.getTx().setText("连接成功");
		    
		    
		    
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			
			this.cs.getTx().setText("连接失败");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	//发送信息
	public void sendMags(String str){
		out.println(str);
		out.flush();
	}
	
	//客户端退出
	public void close(){
		out.println("exit");
		
		out.flush();
		out.close();
		try {
			client.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}


在client的UI界面则忽略显示了.编写client方法的时候已经将各种小功能分散得很清楚了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值