码迷,mamicode.com
首页 > 其他好文 > 详细

TCP编程,Socket通讯

时间:2015-07-26 11:12:18      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:socket   网络编程   tcp   

网络编程分两种,一种是TCP编程,另一种是UDP编程(点击打开链接)。而本文先讲述简单的TCP编程,Socket套接字连接通讯,实现简单的客户端与服务器之间的信息传输。

下面是客户端与服务器之间简单的数据传输(单对单):

注意:服务端先启动,然后再启动客户端。


客户端:

public class C {
	public static void main(String[] args) {
		try {
			Socket s = new Socket("172.18.122.64", 10086); //访问服务端是本地服务器,端口号是10086,要相同
			if(s.isConnected()){
				System.out.println("客户端成功连接");
			}
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
			Scanner in = new Scanner(System.in);
			/*GetMsg get = new GetMsg(s);
			get.start();*/
			while(true){
				String s1 = in.next();
				if(s1.equals("exit")){
					break;
				}
				bw.write(s1);
				bw.newLine();			
				bw.flush();
			}
			bw.close();
			s.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		
	}

}

服务端:

public class S {
	public static void main(String[] args) {
		try {
			ServerSocket server = new ServerSocket(10086);   //服务端,端口是10086
			Socket s = server.accept();                     //开始监听连入的客户端口
			String clientip = s.getInetAddress().getHostAddress();  //获得客户端ip地址
			System.out.println("连入服务器的是来自:"+clientip);
			boolean flag = true;
			GetMsg get = new GetMsg(s);
			get.start();
			/*SendMsg send = new SendMsg(s);
			send.start();*/
			while(flag){
				
			}
			s.close();
			server.close();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	
}

public class GetMsg extends Thread {
	private Socket s;
	public GetMsg(Socket s){
		this.s = s;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		BufferedReader br;
		String str;
		try {
			br = new BufferedReader(new InputStreamReader(s.getInputStream()));
			boolean flag = true;
			while(flag){
				if((str=br.readLine())!=null){
					System.out.println(str);									
				}	
			}
			br.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}



实验结果:

技术分享


技术分享


技术分享


技术分享


技术分享

技术分享



技术分享



以上实现的是客户端与服务器端一对一之间的通讯,也可以实现多人聊天的功能,而服务器在这之间的角色就相当于中介,负责转发信息,如果需要多人聊天的可以留下邮箱或qq号我发给你。



版权声明:本文为博主原创文章,未经博主允许不得转载。

TCP编程,Socket通讯

标签:socket   网络编程   tcp   

原文地址:http://blog.csdn.net/u012432475/article/details/47065569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!