| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 434 人关注过本帖
标题:[求助]还想请大家帮帮忙
只看楼主 加入收藏
117ai
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-12-9
收藏
 问题点数:0 回复次数:6 
[求助]还想请大家帮帮忙
我不根本不知道线程和TCP/IP的Socket怎样连合起来一起用~我想做一个服务器来端创建对象SererSocket在某接口提供监听服务,下面是我自己乱写的一个,错得很离谱,请你们给个思路我吧!
import javax.swing.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.io.*;
class MyServer1 extends Frame implements Runnable{
TextArea Meg=new TextArea(5,7);
String receiveMsg;
ServerSocket sSocket=null;
Socket csocket=null;
BufferedReader reade=null;
PrintStream writer=null;
Thread connectThread;
public void init(){
connectThread=new connectThread(this);
connectTread.start();
}
public void run(){
writer.println("Welcom connect to MyServer!\r");
writer.flush();
String s=reader.readLine();
while(!s.equals("Exit")){
receiveMsg.append("MyClient端输入的信息为:\n"+s);
cSocket.close();
dispose();
}
}
MyServer1(){
super("MyServer服务器端");
setSize(500,300);
setDefualtCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
add("Center",Meg);
setVisible(true);
}
public static void main(String args[]){
try{
sSocket=new ServerSocket(6000,10);
cSocket=sSocket.accept();
reader=new BufferedReader(new InputStreamReader(cSocket.getInputStream()));
writer=new PrintStream(cSocket.getOutputStream());
}catch(IOException e){}
MyServer ma=new MyServer();
}
}
我改了很多遍,上面可能都很乱,我也不会写!
大家给我个思路吧,也别批评我,我真的很无耐
2007-03-26 23:41
117ai
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-12-9
收藏
得分:0 
  ,就不能给个思路我吗?

人真的很奇怪,以前看书时老喜欢看表,希望时间快点过;现在看书总是不敢看表,但时间却很快过!
2007-03-27 10:01
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

服务器:

先在一个端口起一个ServerSocket,然后一直在那里监听.比如ss是ServerSocket,可以

while(true){
Socket s=ss.accept();
new HandleSocket(s).start();
}
然后一直在那里听,听到一个连接,马上就去起一个线程去处理那个连接,然后再监听下一个连接

然后,你的HandleSocket这个类,自己要写好,无非就是利用构造函数里面的socket来得到输入输出流,然后利用输入输出流和客户端进行交互,还有,这个类你得继承自Thread类,不过,你也可以实现runnable接口,那就用new Thread(Runnable target).start()来启动它

客户端:

你直接Socket s=new Socket("地址","端口")就OK了


可惜不是你,陪我到最后
2007-03-27 10:06
117ai
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-12-9
收藏
得分:0 
你这样说我还不太明白!
如果把客户端和服务端都写好了,怎么让它们两个在同一台机运行呢?

人真的很奇怪,以前看书时老喜欢看表,希望时间快点过;现在看书总是不敢看表,但时间却很快过!
2007-03-27 12:39
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
ServerSocket ss=new ServerSocket(8888);
Socket s=new Socket("localhost",8888)

可惜不是你,陪我到最后
2007-03-27 13:02
117ai
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-12-9
收藏
得分:0 
  我的意思是怎样才可以吧两个程序都打开,现在我只能打开一个,另一个程序都打不开!它们不能同时打开!

人真的很奇怪,以前看书时老喜欢看表,希望时间快点过;现在看书总是不敢看表,但时间却很快过!
2007-03-27 13:56
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
使用两个cmd.然后分别都执行java命令,不就可以分别运行server和client了?

我的msn: myfend@
2007-03-27 14:13
快速回复:[求助]还想请大家帮帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060282 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved