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

Socket编程

时间:2018-11-29 01:34:53      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:new   客户   tin   .net   code   public   一个   buffered   127.0.0.1   

Socket

 概念:是连接运行在网络上的两个程序间的双向通讯的端点

   C/S  客户机/服务器  

 B/S   浏览器/服务器

 

基于TCP的Socket编程

 创建TCP服务端步骤

  1.   创建一个ServerSocket对象
  2.   调用accept()方法接受客户端请求
  3.   从Socket中获取I/O流
  4.   对I/O流进行读写操作,完成与客户端的交互
  5.   关闭I/O流和Socket

创建TCP客户步骤

  1.   创建一个Socket对象
  2.   从Socket中获取I/O流
  3.   对I/O流进行读写操作,完成与服务端的交互
  4.   关闭I/O流和Socket
package com.tanlei.Socket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {
  public static void main(String[] args) throws IOException {
	//1,创建一个ServerSocket对象
	  ServerSocket s1=new ServerSocket(8888);
	//2.调用accept()方法接受客户端请求
	  Socket socket=s1.accept();
	  System.out.println(socket.getInetAddress()+"连接成功");
	//获取Socket对象的输入输出流
	  BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
	  BufferedWriter bw=new BufferedWriter(new  OutputStreamWriter(socket.getOutputStream()));
	  
	  String line=null;
	  //读取客户端传过来的数据
	   while((line=br.readLine())!=null) {
		    if(line.equals("over")) {
		    	break;
		    }
		    System.out.println(line);
		    bw.write(line.toUpperCase());//把转换成大写的字符串传给客户端
		    bw.newLine();//换行
		    bw.flush();
	   }
	   bw.close();
	   br.close();
	   socket.close();
	   
	   System.out.println(socket.getInetAddress()+"断开连接");
	  
}
}

 

 

package com.tanlei.Socket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;


public class TcpClient {
  public static void main(String[] args) throws IOException {
	 //1.创建一个Socket对象 
	 Socket socket=new Socket("127.0.0.1", 8888);
	 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
	 BufferedReader br1=new BufferedReader(new InputStreamReader(socket.getInputStream()));
	 while(true) {
		 String line=br.readLine();//获取键盘所输入的字符串
		 bw.write(line);
		 bw.newLine();//换行
		 bw.flush();
		 if (line.equals("over")) {
			break;
		}
		 System.out.println(br.readLine());//获取服务端传来的大小字符串
	 }
	 br1.close();
	 br.close();
	 bw.close();
	 socket.close();
	 
	 
}
}

 

 

基于UDP的Socket编程

.........................................

 

Socket编程

标签:new   客户   tin   .net   code   public   一个   buffered   127.0.0.1   

原文地址:https://www.cnblogs.com/tanlei-sxs/p/10035842.html

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