用Socket编程实现一个基于C/S的应用

利用Socket编程制作一个复杂的多用户的C/S应用。其中,Client端为GUI程序,用于提供界面输入两个数,并有1个“发送”按钮,另外还有一个TextField用于显... 利用Socket编程制作一个复杂的多用户的C/S应用。其中,Client端为GUI程序,用于提供界面输入两个数,并有1个“发送”按钮,另外还有一个 TextField用于显示传来的计算结果;Server端用于监听多个用户的连接请求、计算发送过来的两数的和、送回数据结果。
用的是Java语言,windows
展开
 我来答
小乌龟iK
2011-12-22 · TA获得超过3581个赞
知道大有可为答主
回答量:1885
采纳率:57%
帮助的人:654万
展开全部
例子一:
1 客户端的程序

package net3;
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args){
try{
System.out.println("连接到服务器");
Socket s=new Socket("localhost",4005);
BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw=new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
String str="";
String sss="";

while(true)
{
str=b.readLine();
pw.println(str);
pw.flush();
//不理睬大小写转换
if(str.equalsIgnoreCase("stop"))
{
System.out.println("服务停止");
break;
}
sss=br.readLine();
System.out.println(sss);
if(sss.equalsIgnoreCase("stop"))
{
System.out.println("服务停止");
break;
}

}
b.close();
br.close();
pw.close();
}
catch(IOException e){}
}
}

2 服务器端的程序:

package net3;
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args){
try{
System.out.println("服务器正在启动....");
ServerSocket ss=new ServerSocket(4005);
System.out.println("服务器启动,等待服务...");
Socket s=ss.accept();
BufferedReader r=new BufferedReader(new InputStreamReader(System.in));
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter bw=new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
String str="";
String sss="";
while(true)
{
sss=br.readLine();
System.out.println(sss);
if(sss.equalsIgnoreCase("stop"))
{
System.out.println("服务停止");
break;
}

str=r.readLine();
bw.println(str);
bw.flush();
//不理睬大小写转换
if(str.equalsIgnoreCase("stop"))
{
System.out.println("服务停止");
break;
}
}

br.close();
r.close();
bw.close();
}
catch(IOException e){}
}
}

例子二:
package test.socket;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

public class TalkMe {

public static void main(String[] args) {
System.out.println("请输入:IP地址:");
TalkMe talk = new TalkMe();
talk.listener().start();
try {
talk.talker(new BufferedReader(new InputStreamReader(System.in)).readLine()).start();
} catch (IOException e) {
e.printStackTrace();
}
}
private Thread listener(){
return new Thread() {
public void run() {
DataInputStream dataIS = null;
String clientSay;
try {
ServerSocket server = new ServerSocket(9666);
Socket socket = server.accept();
while (true) {
dataIS = new DataInputStream(socket.getInputStream());
clientSay = dataIS.readLine();
System.out.println("Other say:" + clientSay);
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
}
private Thread talker(final String ip){
return new Thread(){
public void run() {
Socket socket = null;
InputStreamReader stdin=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(stdin);
DataInputStream dataIS = new DataInputStream(System.in);
OutputStream os;
PrintStream ps;
String say = "";
boolean flag = true;
while (flag) {
if (flag)
System.out.println("connection ....");
try {
socket = new Socket(ip, 9666);
System.out.println("connection ok.");
flag = true;
os = socket.getOutputStream();
ps = new PrintStream(os);
while (true) {
say = dataIS.readLine();
ps.println(say);
}
} catch (UnknownHostException e) {
try {
sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
} catch (IOException e) {

}
}
}
};
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
13003673250
2011-12-27
知道答主
回答量:24
采纳率:0%
帮助的人:13.9万
展开全部
可以用c++做,很简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
源语梦Hg
2011-12-21 · TA获得超过521个赞
知道小有建树答主
回答量:670
采纳率:100%
帮助的人:278万
展开全部
什么语言?
c++
什么环境?
windows or Linxu/Unix
追问
用的是java语言,windows
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
耔落
2012-06-24
知道答主
回答量:1
采纳率:0%
帮助的人:1625
展开全部
你好。可以把这个也发给我一份吗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
烂漫男孩
2011-12-28
知道答主
回答量:2
采纳率:0%
帮助的人:3万
展开全部
告诉我你邮箱
追问
加你了
追答
发你邮箱里了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式