2015华为软赛(二)——socket链接
2015-06-21 11:22
267 查看
点滴记录总结,一天一打鸡血。
关于socket通信之前写过一篇文章:http://blog.csdn.net/lh648365878/article/details/45716681
client端的主要过程如下:
创建socket,返回socket描述符sockfd
设置属性,可以设置端口为reuse模式
使用bind对客户端ip、端口进行绑定
将服务器端的ip和端口绑定(视赛制需求,一般不需要)
连接
WriteLog函数用于服务端记录输出,方便调试~
2015年5月华为组织了一次软件精英挑战赛,赛题是德州扑克手牌AI~
环境及测试说明:http://pan.baidu.com/s/1dD2dL0P关于socket通信之前写过一篇文章:http://blog.csdn.net/lh648365878/article/details/45716681
client端的主要过程如下:
创建socket,返回socket描述符sockfd
设置属性,可以设置端口为reuse模式
使用bind对客户端ip、端口进行绑定
将服务器端的ip和端口绑定(视赛制需求,一般不需要)
连接
WriteLog函数用于服务端记录输出,方便调试~
struct sockaddr_in c_addr, s_addr; bzero(&c_addr, sizeof(struct sockaddr)); bzero(&s_addr, sizeof(struct sockaddr)); /* set client_addr */ c_addr.sin_family = AF_INET; c_addr.sin_port = htons(atoi(client_port)); if (inet_aton(client_ip, (struct in_addr *)&c_addr.sin_addr.s_addr) == 0) { //WriteLog(client_log, "wrong client_ip!\n", num); exit(1); } /*create socket*/ int sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { //WriteLog(client_log, "socket create error!\n", num); exit(1); } /*SO_REUSEADDR */ int reuseFlag = 1; if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuseFlag, sizeof(reuseFlag)) == -1) { //WriteLog(client_log, "setsockopt so_reuseaddr error!\n", num); exit(1); } /*bind client socket */ if (bind(sockfd, (struct sockaddr*)&c_addr, sizeof(struct sockaddr)) == -1) { //WriteLog(client_log, "bind client error!\n", num); exit(1); } /*set server_ip */ s_addr.sin_family = AF_INET; s_addr.sin_port = htons(atoi(server_port)); if (inet_aton(server_ip, (struct in_addr *)&s_addr.sin_addr.s_addr) == 0) { //WriteLog(client_log, "wrong server_ip!\n", num); exit(1); } /* connect to server */ while (connect(sockfd, (struct sockaddr*)&s_addr, sizeof(struct sockaddr)) == -1); //WriteLog(client_log, "connect success!\n", num);
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- 简单的Ruby中的Socket编程教程
- Socket不能选择本地IP连接问题如何解决
- C#之Socket操作类实例解析
- C#使用Socket快速判断数据库连接是否正常的方法
- 科学知识:理解socket
- php与flash as3 socket通信传送文件实现代码
- 解决time_wait强制关闭socket
- C#使用Socket上传并保存图片的方法
- 深入php socket的讲解与实例分析
- Linux网络编程之UDP Socket程序示例
- Linux网络编程之socket文件传输示例
- filezilla Failed to create listen socket on port 21 for IPv4 解决办法
- php socket方式提交的post详解
- PHP异步调用socket实现代码
- PHP实现Socket服务器的代码
- udp socket客户端和udp服务端程序示例分享
- php socket实现的聊天室代码分享
- C#实现的Socket服务器端、客户端代码分享