JAVA socket编程实例
来源:互联网 发布:银河麒麟知乎 编辑:程序博客网 时间:2024/05/01 22:44
import java.net.*;
public class SocketCommunicationClient
{
public static void main(String[] args)
{
try{
Socket clientSocket =new Socket ("mice",9000);//创建一个流Socket并与主机mice上的端口9000相连接
OutputStream output =clientSocket.getOutputStream();//向此Socket写入字节的一个输出流
DataInputStream input=new DataInputStream(clientSocket.getInputStream());
file://创建新的数据输入流以便从指定的输入流中读出数据
int c;
String response;
while (( c= System.in.read())!=-1)//从屏幕上接受输入的字符串,并且分解成一个个字符
{
output.write((byte)c);
if(c=='\n')//如果字符为回车,则输出字符串缓冲
{
output.flush();
response=input.readLine();
System.out.println("Communication:"+response);
}
}
output.close();
input.close();
clientSocket.close();
} catch (Exception e){
System.err.println("Exception :"+e);
}
}
}
import java.net.*;
import java.io.*;
public class SocketCommunicationServer
{
public static void main(String[] args)
try
{
boolean flag=true;//设置标志位为真
Socket client=null;//创建Socket client以接收来自客户端的请求
String inputLine;
ServerSocket serverSocket =new ServerSocket (9000);//以端口9000创建一个服务器Socket
System.out.println("服务器在端口9000上监听");
file://也可以使用serverSocket.getLocalPort()来获得端口号
while(flag)
{
client=serverSocket.accept();
file://监听并接受与此Socket的连接,该方法会阻塞直到有一个连接产生
DataInputStream input=new DataInputStream(new BufferedInputStream(client.getInputStream()));
PrintStream output=new PrintStream(new BufferedOutputStream(client.getOutputStream());
while (( inputLine= input.readLine())!=null)
{
if(inputLine.equals("Stop"))
{
flag=false;
break;
}
output.println(inputLine);
output.flush();
}
output.close();
input.close();
client.close();
}
serverSocket.close();
}catch(IOException e){}
}
}
}
服务器:
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while(true){
Socket client=server.accept();
BufferedReader in=
new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}
}
}
客户机代码:
import java.net.*;
import java.io.*;
public class MultiUser extends Thread{
private Socket client;
public MultiUser(Socket c){
this.client=c;
}
public void run(){
try{
BufferedReader in=
new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
//Mutil User but can't parallel
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}catch(IOException ex){
}finally{
}
}
public static void main(String[] args)throws IOException{
ServerSocket server=new ServerSocket(5678);
while(true){
//transfer location change Single User or Multi User
MultiUser mu=new MultiUser(server.accept());
mu.start();
}
}
}
- java Socket 编程实例
- JAVA socket编程实例
- java Socket 编程实例
- JAVA socket编程实例
- JAVA socket编程实例
- JAVA socket编程实例
- JAVA socket编程实例
- JAVA socket编程实例
- JAVA socket编程实例
- JAVA socket编程实例
- java socket 编程实例
- JAVA socket编程实例
- java socket 编程实例
- java socket编程实例
- Java Socket编程实例
- Java socket编程实例
- Java socket 入门编程实例
- Java socket 入门编程实例
- CommandBehavior.CloseConnection有何作用
- 朴素的dijkstra模板
- 建立良好人际关系的十二个要点
- 指针和引用的使用
- 详解DNS的常用记录(下):DNS系列之三
- JAVA socket编程实例
- 从eclipse导入工程到myeclipse,不能部署到tomcat根目录下的解决方案
- 用迭代创建联级目录
- Qt网络获取本机网络信息
- 是页面所有元素disabled 属性失效和生效的javascript
- 文本编码只UTF-8
- stl 容器适配器、迭代器适配器和函数适配器讲解
- ASP.NET工程中发布前有文件夹,发布后就不见了的解决办法
- 计算差三角