http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8580 [º¹»ç]
ÁïÈïÀûÀ¸·Î ÆÄÀ̽㠼ýÀÚ¸ÂÃ߱⠰ÔÀÓÀ» ±¸ÇöÇغôÙ.
ÀÌ °Á¿¡¼´Â ¾Æ·¡ÀÇ Ã¤Æà ÇÁ·Î±×·¥ ¸¸µé±â ¼Ò½º¸¦ ¾à°¾ º¯ÇüÇÏ°í
Ãß°¡Çؼ ÇÁ·Î±×·¥À» ¿Ï¼º½ÃÄ×´Ù. (»ç½Ç º°°Å ¾Æ´Ï´Ù...)
¼Ò½º Äڵ带 ÷ºÎÇÏ°Ú´Ù.
=====server.py=====
import random
import socket
host = '127.0.0.1'
port = 44444
parent_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
parent_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
parent_sock.bind((host, port))
parent_sock.listen(5)
print(f'Server IP: {host}, Port Num: {port} excuting to server...')
child_sock, child_addr = parent_sock.accept()
print(f'accept from {child_addr}')
rand_ans = random.randint(1, 100) # 'Generate a random number between 1 and 100
while True:
answer = int(child_sock.recv(4))
if answer > rand_ans:
child_sock.send("The input value is greater than the correct answer".encode('utf-8'))
elif answer < rand_ans:
child_sock.send("The input value is less than the correct answer".encode('utf-8'))
else:
child_sock.send("Right, You finally got it!".encode('utf-8'))
break
child_sock.close()
parent_sock.close()
==========
=====client.py=====
import socket
server_host = '127.0.0.1' # Loopback address
server_port = 44444
client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# connect to server
client_sock.connect((server_host, server_port))
print(f'Server: {server_host}, {server_port} Connect nomarlly')
count = 1
while True:
message = input("please enter integer between 1 to 100>>> ")
client_sock.sendall(message.encode('utf-8'))
message = client_sock.recv(256)
print(f"server : {message.decode()}")
if message == "Right, You finally got it!".encode('utf-8'):
break
count = count + 1
print("count : ", count)
client_sock.close()
===========
Almost all module functions depend on the basic function random(), which generates a random float uniformly in the half-open range 0.0 <= X < 1.0. Python uses the Mersenne Twister as the core generator. It produces 53-bit precision floats and has a period of 2**19937-1. The underlying implementation in C is both fast and threadsafe. The Mersenne Twister is one of the most extensively tested random number generators in existence. However, being completely deterministic, it is not suitable for all purposes, and is completely unsuitable for cryptographic purposes.
Çؼ®
°ÅÀÇ ¸ðµç ¸ðµâ ÇÔ¼ö´Â ±âº» ÇÔ¼ö random()¿¡ ÀÇÁ¸ÇÑ´Ù.
ÀÌ ÇÔ¼ö´Â ¹ÝÀ¸·Î ¿¸° ¹üÀ§¿¡¼ ±ÕÀÏÇÏ°Ô ·£´ýÇÑ ºÎµ¿ ¼Ò¼öÁ¡À» »ý¼ºÇÑ´Ù.
Áï, 0.0 ÀÌ»óÀÌ°í 1.0 ¹Ì¸¸ÀÌ´Ù.
ÆÄÀ̽ãÀº Mersenne Twister¸¦ ÇÙ½É »ý¼º±â·Î »ç¿ëÇÑ´Ù.
ÀÌ´Â 53ºñÆ® Á¤¹ÐµµÀÇ ºÎµ¿ ¼Ò¼öÁ¡À» »ý¼ºÇϸç 2**19937-1ÀÇ Áֱ⸦ °¡Áö°í ÀÖ´Ù.
C·Î ±¸ÇöµÈ ÇϺΠ±¸ÇöÀº ºü¸£°í ½º·¹µå ¾ÈÀüÇÏ´Ù.
Mersenne Twister´Â Á¸ÀçÇÏ´Â °¡Àå öÀúÇÏ°Ô Å×½ºÆ®µÈ ³¼ö »ý¼º±â Áß Çϳª´Ù.
±×·¯³ª ¿ÏÀüÈ÷ °áÁ¤·ÐÀûÀ̱⠶§¹®¿¡ ¸ðµç ¿ëµµ¿¡ ÀûÇÕÇÏÁö ¾ÊÀ¸¸ç,
¾ÏÈ£È ¿ëµµ·Î´Â ÀüÇô ÀûÇÕÇÏÁö ¾Ê´Ù.
ÆÄÀ̽ãÀÇ ·£´ý ¸ðµâÀ» ÀÌ¿ëÇÏ¿© ¼ýÀÚ ¸ÂÃ߱⠰ÔÀÓÀ» ¸¸µé¾ú´Ù.
rand_ans = random.randint(1, 100) # 'Generate a random number between 1 and 100
1ÀÌ»ó 100ÀÌÇÏÀÇ ¼ýÀÚ¸¦ ¹«ÀÛÀ§·Î »ý¼ºÇؼ rand_ans º¯¼ö¿¡ ÀúÀåÇÑ´Ù.
·£´ýÀ¸·Î ¹Þ´Â ³¼ö »©°ï º°°Å ¾ø´Â °Å¶ó¼ ´õ ÀÌ»óÀÇ ¼³¸íÀÌ ÇÊ¿ä¾øÀ» µí ÇÏ´Ù. |
Hit : 830 Date : 2024/05/30 12:36
|