客户端代码是这样的。。。
#import "ViewController.h"
@implementation ViewController
-(void)aaa:(UIButton *)btn
{
NSString *method=[NSString stringWithFormat:@"login"];
NSString *username=[NSString stringWithFormat:@"123"];
NSString *password=[NSString stringWithFormat:@"123"];
NSString *urlString= [NSString stringWithFormat:@"http://192.168.1.107:8080/ipTest/test.do?%@%@&%@%@&%@%@",@"method=",method,@"username=",username,@"password=",password];
ASIFormDataRequest *requestForm = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
//设置需要POST的数据,这里提交两个数据,A=a&B=b
//[requestForm setPostValue:@"a" forKey:@"A"];
//[requestForm setPostValue:@"b" forKey:@"B"];
[requestForm startSynchronous];
//输入返回的信息
NSLog(@"response\n%@",[requestForm responseString]);
[requestForm release];
}
- (void)viewDidLoad
{
[super viewDidLoad];
button1=[[UIButton alloc]initWithFrame:CGRectMake(200, 200, 50, 50)];
button1.backgroundColor=[UIColor redColor];
[self.view addSubview:button1];
[button1 addTarget:self action:@selector(aaa:) forControlEvents:UIControlEventTouchUpInside];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
客户端想要访问服务器 必须加上服务器的ip 服务端我是这样实现的。。。
服务器是用java开发的
public void doLogin(HttpServletRequest request,HttpServletResponse response) throws IOException{
String username=request.getParameter("username");
String password=request.getParameter("password");
String getStr=request.getParameter("A");
System.out.println("用户名:"+username+ "密码:"+password);
getAddr(request);
PrintWriter out=response.getWriter();
String msg=null;
if(username!=null&&username.equals("123")&&password!=null &&password.equals("123")&& getStr!=null&&getStr.equals("a")){
msg="登陆成功";
}
else
{
msg="登陆失败";
}
out.print(msg);
out.flush();
out.close();
}
.....................................
Java 多客户端通信服务端代码分析
[大] [中] [小] 发布人:圣才学习网 发布日期:2011-12-07 14:14 共180人浏览
Java 多客户端通信在很多人看来是一项很繁琐的工作,其实我们在编写代码的时候只要是注意留心Java 多客户端通信的源代码就能发现,我们认为枯燥的东西其实都很简单。
来看服务端的代码:
1. import java.net.*;
2. import java.io.*;
3. import java.util.*;
4. public class Jserver3 {
5. private ServerSocket server;
6. List sManager = new ArrayList();
7. public Jserver3(){}
8. void startServer() //运行服务器
9. {
10. try
11. {
12. server=new ServerSocket(719);
13. System.out.println("服务器套接字已创建成功!");
14. while(true)
15. {
16. Socket socket=server.accept();
17. System.out.println("已经与客户端连接");
18. new J_Thread(socket).start();
19. sManager.add(socket);
20. System.out.println("当前客户端连结数:"+sManager.size());
21. }
22. }catch(Exception e){}finally
23. {
24. try
25. {
26. server.close();
27. }catch(Exception e){}
28. }
29. }
30. public static void main(String[] args) {
31. Jserver3 server=new Jserver3();
32. server.startServer();
33. }
34. class J_Thread extends Thread//与客户端进行通信的线程类
35. {
36. Socket socket; //套接字引用变量
37. private DataInputStream reader; //套接字输入流
38. private DataOutputStream writer; //套接字输出流
39. J_Thread(Socket socket) //构造函数
40. {
41. this.socket=socket;
42. }
43. public void run()
44. {
45. try
46. {
47. reader=new DataInputStream(socket.getInputStream());//获取套接字的输入流
48. writer=new DataOutputStream(socket.getOutputStream());//获取套接字的输出流
49. String msg;
50. while((msg=reader.readUTF())!=null)//如果收到客户端发来的数据
51. {
52. //向客户端发送信息
53. writer.writeUTF("您的情书已经收到");
54. writer.flush();
55. System.out.println("来自客户端:"+msg);
56. }
57. }catch(Exception e){}finally
58. {
59. try
60. {
61. sManager.remove(socket); //删除套接字
62. //关闭输入输出流及套接字
63. if(reader!=null)reader.close();
64. if(writer!=null)writer.close();
65. if(socket!=null)socket.close();
66. reader=null;
67. writer=null;
68. socket=null;
69. System.out.println("客户端离开");//向屏幕输出相关信息
70. System.out.println("当前客户端的连接数:"+sManager.size());
71. }catch(Exception e){}
72. }
73. }
74. }
75. }
76. import java.net.*;
77. import java.io.*;
78. import java.util.*;
79. public class Jserver3 {
80. private ServerSocket server;
81. List sManager = new ArrayList();
82. public Jserver3(){}
83. void startServer() //运行服务器
84. {
85. try
86. {
87. server=new ServerSocket(719);
88. System.out.println("服务器套接字已创建成功!");
89. while(true)
90. {
91. Socket socket=server.accept();
92. System.out.println("已经与客户端连接");
93. new J_Thread(socket).start();
94. sManager.add(socket);
95. System.out.println("当前客户端连结数:"+sManager.size());
96. }
97. }catch(Exception e){}finally
98. {
99. try
100. {
101. server.close();
102. }catch(Exception e){}
103. }
104. }
105. public static void main(String[] args) {
106. Jserver3 server=new Jserver3();
107. server.startServer();
108. }
109. class J_Thread extends Thread//与客户端进行通信的线程类
110. {
111. Socket socket; //套接字引用变量
112. private DataInputStream reader; //套接字输入流
113. private DataOutputStream writer; //套接字输出流
114. J_Thread(Socket socket) //构造函数
115. {
116. this.socket=socket;
117. }
118. public void run()
119. {
120. try
121. {
122. reader=new DataInputStream(socket.getInputStream());//获取套接字的输入流
123. writer=new DataOutputStream(socket.getOutputStream());//获取套接字的输出流
124. String msg;
125. while((msg=reader.readUTF())!=null)//如果收到客户端发来的数据
126. {
127. //向客户端发送信息
128. writer.writeUTF("您的情书已经收到");
129. writer.flush();
130. System.out.println("来自客户端:"+msg);
131. }
132. }catch(Exception e){}finally
133. {
134. try
135. {
136. sManager.remove(socket); //删除套接字
137. //关闭输入输出流及套接字
138. if(reader!=null)reader.close();
139. if(writer!=null)writer.close();
140. if(socket!=null)socket.close();
141. reader=null;
142. writer=null;
143. socket=null;
144. System.out.println("客户端离开");//向屏幕输出相关信息
145. System.out.println("当前客户端的连接数:"+sManager.size());
146. }catch(Exception e){}
147. }
148. }
149. }
150. }
嘎嘎 在这段代码里,服务端MM为每一个连接的客户端GG分配一个单独的线程,而每一个线程里都持有对应的客户端GG的Java 多客户端通信对象。SO,通过这些多线程,服务端MM就练就了一心N用的功力,可以同时接受N个客户端GG发来的情书了(,真的太贱了。。。。)
客户端的代码和上面的客户端代码一模一样的,这里就不多说啦!
来源:51CTO 作者:不详
#import "ViewController.h"
@implementation ViewController
-(void)aaa:(UIButton *)btn
{
NSString *method=[NSString stringWithFormat:@"login"];
NSString *username=[NSString stringWithFormat:@"123"];
NSString *password=[NSString stringWithFormat:@"123"];
NSString *urlString= [NSString stringWithFormat:@"http://192.168.1.107:8080/ipTest/test.do?%@%@&%@%@&%@%@",@"method=",method,@"username=",username,@"password=",password];
ASIFormDataRequest *requestForm = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
//设置需要POST的数据,这里提交两个数据,A=a&B=b
//[requestForm setPostValue:@"a" forKey:@"A"];
//[requestForm setPostValue:@"b" forKey:@"B"];
[requestForm startSynchronous];
//输入返回的信息
NSLog(@"response\n%@",[requestForm responseString]);
[requestForm release];
}
- (void)viewDidLoad
{
[super viewDidLoad];
button1=[[UIButton alloc]initWithFrame:CGRectMake(200, 200, 50, 50)];
button1.backgroundColor=[UIColor redColor];
[self.view addSubview:button1];
[button1 addTarget:self action:@selector(aaa:) forControlEvents:UIControlEventTouchUpInside];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
客户端想要访问服务器 必须加上服务器的ip 服务端我是这样实现的。。。
服务器是用java开发的
public void doLogin(HttpServletRequest request,HttpServletResponse response) throws IOException{
String username=request.getParameter("username");
String password=request.getParameter("password");
String getStr=request.getParameter("A");
System.out.println("用户名:"+username+ "密码:"+password);
getAddr(request);
PrintWriter out=response.getWriter();
String msg=null;
if(username!=null&&username.equals("123")&&password!=null &&password.equals("123")&& getStr!=null&&getStr.equals("a")){
msg="登陆成功";
}
else
{
msg="登陆失败";
}
out.print(msg);
out.flush();
out.close();
}
.....................................
Java 多客户端通信服务端代码分析
[大] [中] [小] 发布人:圣才学习网 发布日期:2011-12-07 14:14 共180人浏览
Java 多客户端通信在很多人看来是一项很繁琐的工作,其实我们在编写代码的时候只要是注意留心Java 多客户端通信的源代码就能发现,我们认为枯燥的东西其实都很简单。
来看服务端的代码:
1. import java.net.*;
2. import java.io.*;
3. import java.util.*;
4. public class Jserver3 {
5. private ServerSocket server;
6. List sManager = new ArrayList();
7. public Jserver3(){}
8. void startServer() //运行服务器
9. {
10. try
11. {
12. server=new ServerSocket(719);
13. System.out.println("服务器套接字已创建成功!");
14. while(true)
15. {
16. Socket socket=server.accept();
17. System.out.println("已经与客户端连接");
18. new J_Thread(socket).start();
19. sManager.add(socket);
20. System.out.println("当前客户端连结数:"+sManager.size());
21. }
22. }catch(Exception e){}finally
23. {
24. try
25. {
26. server.close();
27. }catch(Exception e){}
28. }
29. }
30. public static void main(String[] args) {
31. Jserver3 server=new Jserver3();
32. server.startServer();
33. }
34. class J_Thread extends Thread//与客户端进行通信的线程类
35. {
36. Socket socket; //套接字引用变量
37. private DataInputStream reader; //套接字输入流
38. private DataOutputStream writer; //套接字输出流
39. J_Thread(Socket socket) //构造函数
40. {
41. this.socket=socket;
42. }
43. public void run()
44. {
45. try
46. {
47. reader=new DataInputStream(socket.getInputStream());//获取套接字的输入流
48. writer=new DataOutputStream(socket.getOutputStream());//获取套接字的输出流
49. String msg;
50. while((msg=reader.readUTF())!=null)//如果收到客户端发来的数据
51. {
52. //向客户端发送信息
53. writer.writeUTF("您的情书已经收到");
54. writer.flush();
55. System.out.println("来自客户端:"+msg);
56. }
57. }catch(Exception e){}finally
58. {
59. try
60. {
61. sManager.remove(socket); //删除套接字
62. //关闭输入输出流及套接字
63. if(reader!=null)reader.close();
64. if(writer!=null)writer.close();
65. if(socket!=null)socket.close();
66. reader=null;
67. writer=null;
68. socket=null;
69. System.out.println("客户端离开");//向屏幕输出相关信息
70. System.out.println("当前客户端的连接数:"+sManager.size());
71. }catch(Exception e){}
72. }
73. }
74. }
75. }
76. import java.net.*;
77. import java.io.*;
78. import java.util.*;
79. public class Jserver3 {
80. private ServerSocket server;
81. List sManager = new ArrayList();
82. public Jserver3(){}
83. void startServer() //运行服务器
84. {
85. try
86. {
87. server=new ServerSocket(719);
88. System.out.println("服务器套接字已创建成功!");
89. while(true)
90. {
91. Socket socket=server.accept();
92. System.out.println("已经与客户端连接");
93. new J_Thread(socket).start();
94. sManager.add(socket);
95. System.out.println("当前客户端连结数:"+sManager.size());
96. }
97. }catch(Exception e){}finally
98. {
99. try
100. {
101. server.close();
102. }catch(Exception e){}
103. }
104. }
105. public static void main(String[] args) {
106. Jserver3 server=new Jserver3();
107. server.startServer();
108. }
109. class J_Thread extends Thread//与客户端进行通信的线程类
110. {
111. Socket socket; //套接字引用变量
112. private DataInputStream reader; //套接字输入流
113. private DataOutputStream writer; //套接字输出流
114. J_Thread(Socket socket) //构造函数
115. {
116. this.socket=socket;
117. }
118. public void run()
119. {
120. try
121. {
122. reader=new DataInputStream(socket.getInputStream());//获取套接字的输入流
123. writer=new DataOutputStream(socket.getOutputStream());//获取套接字的输出流
124. String msg;
125. while((msg=reader.readUTF())!=null)//如果收到客户端发来的数据
126. {
127. //向客户端发送信息
128. writer.writeUTF("您的情书已经收到");
129. writer.flush();
130. System.out.println("来自客户端:"+msg);
131. }
132. }catch(Exception e){}finally
133. {
134. try
135. {
136. sManager.remove(socket); //删除套接字
137. //关闭输入输出流及套接字
138. if(reader!=null)reader.close();
139. if(writer!=null)writer.close();
140. if(socket!=null)socket.close();
141. reader=null;
142. writer=null;
143. socket=null;
144. System.out.println("客户端离开");//向屏幕输出相关信息
145. System.out.println("当前客户端的连接数:"+sManager.size());
146. }catch(Exception e){}
147. }
148. }
149. }
150. }
嘎嘎 在这段代码里,服务端MM为每一个连接的客户端GG分配一个单独的线程,而每一个线程里都持有对应的客户端GG的Java 多客户端通信对象。SO,通过这些多线程,服务端MM就练就了一心N用的功力,可以同时接受N个客户端GG发来的情书了(,真的太贱了。。。。)
客户端的代码和上面的客户端代码一模一样的,这里就不多说啦!
来源:51CTO 作者:不详